libraries 中文说明
![License](https://camo.githubusercontent.com/7f04ee69a1fb7827f70a63b21200ac6f79bf7419ee4a1e8c8777e2d5bbd05775/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f676f7a667265652f6c69627261726965732e737667)
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.
name | descript | name | descript | name | descript |
---|---|---|---|---|---|
libatomic | Atomic operation | libbase64 | Base64/32 encode/decode | libcmd | Based on readline like bash |
libconfig | Support ini/json | libdebug | Help to trace crash like gdb | libdict | Hash key-value dictonary |
libfilewatcher | Watch file/dir on event | libfile | File operations | libgevent | Reactor event, like libevent |
libhal | hardware Abstraction Layer | libhash | Hash key-value based on hlist | libipc | Support mqueue/netlink/shm |
liblog | Support console/file/rsyslog | libmacro | Basic Macro define | libmp4parser | MP4 format parser |
liblock | Lock/mutex/sem wrapper | libthread | Thread wrapper | libp2p | p2p punch hole and transfer |
libplugin | Dynamic link plugin | libptcp | Pseudo Tcp Socket over UDP | librbtree | linux kernel rbtree |
librpc | Remote Procedure Call | librtsp | Rtsp wrapper | libskt | Socket wrapper |
libstun | STUN protocol wrapper | libtime | Time wrapper | libqueue | support memory hook |
libringbuffer | c ringbuffer | libworkq | Work queue in userspace | libvector | c vector |
libuvc | USB video class (V4L2) |
type | name |
---|---|
data struct | libdict libhash libringbuffer libqueue librbtree libsort libvector libmacro |
network | librtsp libskt libptcp libp2p libstun librpc libipc |
async | libgevent libworkq libthread liblock libatomic |
I/O parser | libbase64 libconfig libconfig++ liblog libfile libfilewatcher libstrex libcmd |
multi-media | libuvc libjpeg-ex libmp4parser |
misc | libdebug libhal libplugin libtime |
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 |