
OpenSource项目
iteye_17143
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SPProcPool: Unix/Linux 上的进程池服务器框架
SPProcPool 是一个 linux/unix 平台上的进程池服务器框架,使用 c++ 实现。主要包含了几种不同类型的进程池的实现:一个基于 Leader/Follower 模式的服务器端进程池(类似 apache 的 prefork 模型);一个组合了 Prefork 和线程池的服务器端框架(类似 apache 的 worker 模型);一个基于文件句柄传递的服务器端进程池;...2007-12-09 11:30:45 · 261 阅读 · 0 评论 -
一个轻量的 wire format 解释器(google protobuf 的二进制格式)
google 的 protobuf 项目,底层的二进制格式设计很精简,格式的详细描述参考下面的链接:[url]http://code.google.com/apis/protocolbuffers/docs/encoding.html[/url]下载链接[url]http://spjson.googlecode.com/files/spjson-0.3.src.tar.gz[/ur...2009-10-07 21:38:47 · 1427 阅读 · 0 评论 -
SPHiveDB: 基于 sqlite 的数据库服务器
在 share nothing 的架构中,如果数据规模很大,为了提高可用性,通常采用数据库分片(database sharding)的策略。常见的分片策略是按主键把数据分散到不同的数据库中。在使用常规的 RDBMS 的场景中,分片策略中使用的数据库个数通常在100以下。在某些特殊的场景中,可能希望采用更极端的分片方法,比如在类似地址本这种应用中,可以为每个用户创建一个数据库。SPHiveD...2009-05-23 23:39:28 · 269 阅读 · 0 评论 -
spmemvfs: 在内存中加载/保存 sqlite3 数据库
关于 sqlite3 有很多的介绍文章,这里就不提了。说一下 memory vfs for sqlite3 可能用在什么场景下。一个常见的场景是用户地址本功能。地址本应用中,把一个用户的所有联系人列出来,是最常用的操作,增加/删除/修改 的操作相对显的比较少。常规的做法可能是把多个用户的数据保存在一个表中(比如用 mysql),至少包含两个字段 ( username, ad...2009-05-01 18:38:40 · 427 阅读 · 0 评论 -
spcached: memcached 的克隆实现,支持 windows 平台
memcached 没有官方的 windows 发布版本,只有一些第三方的开发人员在发布 windows 的版本。在 windows 平台编译 memcached 也比较麻烦。之前为了测试的目地,基于 spserver 和 spdict 实现了一个 memcached 的克隆版本 -- spcached。[url]http://iunknown.iteye.com/blog/80095...2009-11-03 22:51:20 · 133 阅读 · 0 评论 -
SPSmtpGate: SMTP 反垃圾邮件网关
SPSmtpGate 是一个反垃圾邮件网关,支持 Sendmail 8 的 Milter 协议,采用透明 smtp proxy 的模式。Milter 协议由 Sendmail 公司提出,在 Sendmail 和 Postfix 中都有实现。目前开源的 Milter 模块非常丰富,如果搭配的好,这些 milter 可以有效地拦截垃圾邮件。借助于 SPSmtpGate ,SendMail/Postfi...2009-04-16 22:01:15 · 775 阅读 · 0 评论 -
SPSmtpServer: 一个基于 SPServer 的 SMTP 服务器框架
在 SPServer 中增加了一个 smtp 服务器框架。在框架中把 smtp 协议相关的内容做了封装,基于这个框架来实现各种 smtp 服务器(反垃圾网关,或者用于投递邮件的mta),可以减少工作量。[url]http://spserver.googlecode.com/files/spserver-0.9.4.src.tar.gz[/url]有了这个框架之后,要实现一个简单的 ...2009-03-15 15:08:28 · 425 阅读 · 0 评论 -
用 state pattern 简化 json 解释器的实现
之前用 state pattern 实现过 xml 的解释器([url=http://iunknown.iteye.com/blog/48199]spxml[/url]),现在用同样的思路来试试实现 json 的解释器。 state pattern 用于这两个解释器的实现的确非常合适,可以有效地降低代码的复杂度。在 [url]http://json.org[/url] 上有 json 完整...2008-07-26 11:02:47 · 158 阅读 · 0 评论 -
SPDataPickle: c语言的结构体和 xml/json/protobuf 的自动转化
SPDataPickle 是一种轻便高效的结构化数据和xml/json/protobuf自动序列化库,很适合 RPC 数据交换的场合。[url]http://code.google.com/p/spdatapickle[/url][url]http://spdatapickle.googlecode.com/files/spdatapickle-0.5.src.tar.gz[/url]...2009-01-20 00:20:34 · 772 阅读 · 0 评论 -
sptalk:基于 spserver/spxml/spdict 实现的 jabber 服务器
在 3 年前因为工作需要,搞过一段时间 jabberd 1.4 ,那时被jabberd 1.4 的代码搞的晕头转向。当时就在想要自己实现一个 jabber 服务器。在逐步实现了 [url=http://iunknown.iteye.com/blog/48199]spxml[/url] , [url=http://iunknown.iteye.com/blog/59804]spserver[/url...2007-05-25 14:50:23 · 117 阅读 · 0 评论 -
spcached : memcached 的多线程实现
实现 [url=http://code.google.com/p/spcached/]spcached[/url] 的目的:不是与 [url=http://www.danga.com/memcached/]memcached[/url] 进行竞争,只是为了测试。最初想到要实现 spcached 的时候,是因为想对 [url=http://iunknown.iteye.com/blog/59...2007-05-15 14:43:03 · 144 阅读 · 0 评论 -
SPWebServer:一个基于 SPServer 的 web 服务器框架
看到这个题目,估计很多人会问:为什么要再实现一个 web 服务器?这里有几个原因:1.这是一个 web 服务器框架,不是一个完整的 web 服务器。也就是说 SPWebServer 提供的是一套 API 和类库,可以方便地集成到现有的应用程序中。可以称 SPWebServer 为 [url=http://wiki.huihoo.com/index.php?title=Embedde...2007-05-10 16:07:50 · 314 阅读 · 0 评论 -
spdict:红黑树(RedBlackTree),平衡树(BalancedTree),SkipList 的实现
对着 MIT 的 [url=http://mitpress.mit.edu/algorithms/]《Introduction to Algorithms, Second Edition 》[/url] 看了一段时间,对里面的提到的几种字典数据结构算法很感兴趣,因此照着书上的描述做了一些实现。使用 C++ 实现了:BinarySearchTree, RedBlackTree, [url=http:...2007-04-27 12:11:08 · 181 阅读 · 0 评论 -
SPNetKit:http/smtp/pop3/memcached 的客户端库
SPNetKit 主要是一个常见应用层协议的客户端库,使用 C++ 实现,目前实现了 http,smtp,pop3,memcached 。对于每个客户端都带有一个命令行的示范例子。http/smtp/pop3 除了 TCP 实现之外,也能支持 SSL (基于 openssl)。memcached client 支持了最新的 memcached 1.2.4 中新增加的 'append...2008-01-13 17:41:52 · 330 阅读 · 0 评论 -
SPServer : 一个基于线程池(包括HAHS和LF)的高并发 server 框架
[b]spserver 是一个实现了半同步/半异步(Half-Sync/Half-Async)和领导者/追随者(Leader/Follower) 模式的服务器框架,能够简化 TCP server 的开发工作。spserver 使用 c++ 实现,目前实现了以下功能:1.封装了 TCP server 中接受连接的功能;2.使用非阻塞型I/O和事件驱动模型,由主线程负责处理所有 TCP 连...2007-03-14 15:13:14 · 330 阅读 · 0 评论 -
spxml:使用 state pattern 实现 xml pull/dom parser
[b]spxml 是一个实现了 [url=http://www.xmlpull.org/]pull [/url] 和 dom 两种解释模型的 xml 解释器。spxml 使用 c++ 实现,除系统库之外,不依赖第三方库,目前实现了以下功能:1.实现了 [url=http://www.xmlpull.org/]xml pull parser[/url] 的功能;2.基于 xml pull...2007-01-17 22:26:45 · 156 阅读 · 0 评论 -
Build a thread pool in C
想找个轻便的 thread pool 实现,结果发现网上能找到的都是一些很重量级的,如 boost,ACE 里面的。唯有自己照着下面的需求实现了一个http://paul.rutgers.edu/~csgates/CS416/proj2/index.html源代码下载:[url]http://code.google.com/p/spserver/downloads/list[/ur...2006-12-11 16:27:34 · 137 阅读 · 0 评论 -
把开源项目从googlecode转移到github
前几天看到说 googlecode 准备关闭了,花一个晚上把以前放在 googlecode 的代码转移到 github 了,虽然有不少项目的设计已经落后于时代了,不过出于纪念自己几年前的热情,当作是一次归档吧。所有项目都转移到这个地址了 https://github.com/spsoft...原创 2015-03-14 23:07:36 · 266 阅读 · 0 评论