libloop 项目地址 https://github.com/zhicheng/libloop
项目是从我司的商业项目 OpenNS-DNS (非开源项目, C500K 服务器) 中抽出来的,还没有合并回去,但这只是早晚的事。
封装了 select,epoll 和 kqueue 。 Linux 是首要支持的平台,*BSD 只做开发级别的支持, Windows 不支持。
Timer 目前实现用的是 Python heapq 模块(C Port ),性能比较弱,还要优化。
另外还封装了几个 Unix-Like 下常用的小工具,都是可以单独拿出来用的。
- die
- socket
- pidfile
- daemonize
其它的独立 lib
- json.c ,超简单的 JSON parser ,不依赖 allocator 。地址 https://github.com/zhicheng/json
- dbm 超小 持久 Hash DB 的实现,从 OpenNS-DNS 项目中抽出来的。地址 https://github.com/zhicheng/db
- Bloomfilter 从 OpenNS-DNS 项目中抽出来的。地址 https://github.com/zhicheng/bloomfilter
- geohash 的 C 实现,地址 https://github.com/zhicheng/geohash
- Python binascii 模块的 C Port ,地址 https://github.com/zhicheng/binascii
- Base64 的 C 实现,地址 https://github.com/zhicheng/base64
- fequal 用来对比两个浮点数是否相等,你懂的。地址 https://github.com/zhicheng/fequal
这些都是比较老的项目,因为代码量非常小,所以比较容易使用。有任何问题都可以直接问我。
说说最近在忙的项目,
- WAF,还在考量几种正则引擎的实现。
- TLS lib,OpenSSL 简直不能更难用,用现代的方式实现一个 Light 的 TLS 库。
创建了一个"高性能服务器" QQ 群 487562707 ,欢迎有兴趣的同学进来交流。
也可以关注我的博客 https://www.textarea.com/zhicheng/ 以后会经常分享一些服务器开发地东西。