libraries 中文说明 ![Build Status](https://camo.githubusercontent.com/952558b30b7e032e8a9d836192d10e6fbf492ab8b19e8e587751320b44ce41ec/68747470733a2f2f7472617669732d63692e6f72672f676f7a667265652f6c69627261726965732e7376673f6272616e63683d6d6173746572)
This is a collection of basic libraries.
- All are written in POSIX C, aim to used compatibility on x86, arm, android, ios.
- Each of library is as independently as possible, and the APIs are easily to use.
- Depend on none of open source third party libraries.
- Aim to reduce duplication of the wheel.
libatomic | Atomic operation library. | libcmd | Based on readline, a bash like library. |
libconfig | Configure library, support ini, json. | libdebug | Help to trace crash like gdb. |
libdict | Hash key-value dictonary library. | libdlmod | Dynamic linking loader wrapper library. |
libfile | File operations 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. | libmacro | Basic Macro define library, include kernel list and so on. |
liblock | Lock/mutex/sem wrapper library for easy use. | libthread | Thread wrapper library for easy use. |
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. |
libqueue | c queue library, support memory hook | libringbuffer | c ringbuffer library |
libworkq | Work queue in userspace like work-queue/tasklet in kernel. | libvector | c vector library |
Recommend Ubuntu14.04 gcc-4.8.4+
-
linux platform (32/64 bit)
$ cd libraries
$ ./build.sh
$ sudo ./build.sh install
-
host(linux) target(rasberrypi)
(you need download toolchain of rasberrypi)
$ ./build.sh all pi
-
host(rasberrypi board)
$ ./build.sh
$ sudo ./build.sh install
-
android arm cross compile
(you need download android-ndk-r9-linux-x86_64.tar.bz2)
$ ./build.sh all android
-
android naitve develop
also need ndk tools
$ cd android_jni_libs
$ ndk-build
After install, the libxxx.xx will be installed in /usr/local/lib/.
libxxx.h, libxxx.so or libxxx.a of libraries are also in ./output/$(ARCH)
If you want to add your own library into the build script, no need repeat the same code, only auto gen libxxx framework.
$ ./autogen_lib.sh libfoo
- by default, build x86 on linux, and libxxx folder can be built independently
- if only "libxxx folder" is checkout without "build folder", you can only build x86 and no color set
- with "build folder", you can build x86, pi, android, ios and color is also set
- "sudo make install" is needed when build libxxx alone.
LGPL/GPLv3. Please refer to the LICENSE file for detailed information.
Welcome pull request to the libraries.
CMShuyuhui | core1011 |
elfring | ktsaou |
zh794390558 | gozfree |