Light libraries是一组通用的C基础库,目标是为减少重复造轮子而写。
全部用POSIX C实现,目标是为了跨平台兼容x86, arm, android, ios.
每个库尽可能各自独立,而且API容易使用
尽量不依赖任何第三方库
目标是为减少重复造轮子
实现了日志、原子操作、哈希字典、红黑树、动态库加载、线程、锁操作、配置文件、os适配层、事件驱动、工作队列、RPC、IPC等基础库,和p2p穿透等网络库
一般的开源项目如nginx/ffmpeg/redis等,都有各自的基础库,且实现较为相近,取各库的优点,实现较为通用的库,且库的命名不带前缀,如ngx_log, av_log, redisLog等,直接命名logi/loge/logd,在实现自己的工程时,方便代码的快速集成。
当库完成度和稳定性高时,会release 到ubuntu launchpad.netPPA供下载安装
基础库列表
| Library |
Note |
|
|
libatomic |
Atomic operation library. |
libcmd |
Based on readline, a bash like library. |
libconfig |
Configure library, support ini, json. |
libdict |
Hash key-value dictonary library. |
libdlmod |
Dynamic linking loader wrapper library. |
libgevent |
Reactor event library, like libevent |
libhash |
Hash key-value library based on hlist from kernel. |
libipc |
Inter-Process Communication, support mqueue/netlink/shm. |
liblog |
Log library, support console/file/rsyslog. |
libosal |
OSAL(Operating System Abstraction Layer) library. |
libp2p |
High level p2p punch hole library, easy API to use. |
libptcp |
Pseudo Tcp Socket over UDP, rewrite with C from libjingle. |
librbtree |
Librbtree comes from linux kernel rbtree. |
librpc |
Remote Procedure Call library. |
libskt |
Socket wrapper library for easy use. |
libstun |
STUN protocol wrapper library. |
libtime |
Time wrapper library for easy use. |
liblock |
Lock/mutex/sem wrapper library for easy use. |
libthread |
Thread wrapper library for easy use. |
libworkq |
Work queue in userspace like work-queue/tasklet in kernel. |
了解详情,点击阅读原文
本文转载自:微信公众账号 - 开源中国,版权归原作者所有! |