Giter Site home page Giter Site logo

gearlib's Introduction

Gear-Lib

English | 简体中文

Build Release License

This is a collection of basic libraries.

  • All are written in POSIX C, aim to used compatibility on linux, windows, android, ios.
  • Aim to reuse for IOT, embedded and network service development

struct

Data Struct

libdict: Hash key-value dictonary library libhash: Hash key-value library based on hlist from kernel
libringbuffer: libqueue: queue library, support memory hook
librbtree: comes from linux kernel rbtree. libsort:
libvector: libdarray: Dynamic array

Network

librtsp: Real Time Streaming Protocol server for ipcamera or NVR librtmpc: Real Time Messaging Protocol client for liveshow
libsock: socket warpper api for easily use librpc: Remote Procedure Call library
libipc: Inter-Process Communication, support mqueue/netlink/shm libp2p: High level p2p punch hole library, easy API to use
libmqttc: MQTT client protocol libhomekit: Apple homekit protocol

Async

libgevent: Reactor event, like libevent libthread: Thread wrapper
libworkq: Work queue in userspace

I/O

libstrex: string extension libconfig: Support ini/json
liblog: Support console/file/rsyslog libfile: File operations
libsubmask: ip addr transform

Multi-Media

libavcap: audio/video capture api (v4l2/uvc/esp32/dshow) libmp4: MP4 muxer and parser
libjpeg-ex: libmedia-io: audio/video frame/packet define

OS Abstraction Layer

libposix: posix adapter for Windows/rtos/ios

Misc

libdebug: Help to trace crash like gdb libhal: hardware Abstraction Layer
libplugin: Dynamic link plugin libtime: Time wrapper
libfsm: Finite State Machine

How To Build

Please refer to INSTALL.md file for detailed information.

License

Please refer to the LICENSE file for detailed information.

Contacts

gearlib's People

Contributors

gozfree avatar antonhvornum avatar zhuocaihua avatar leiless avatar xwyam avatar quasi-mod avatar mamins1376 avatar alenwp avatar oopy avatar

Watchers

 avatar

gearlib's Issues

对于libserialize.c的疑问

serializer_file_init方法,给data的初始化为fopen(path, "rb"),创建的是以二进制格式打开某个文件,我想请问为什么这样子设计,libserialize.c文件给float和double都设计了大端小端的write函数,但是在init方法中data却是一个read形式的东西,不是很理解这种矛盾。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.