Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Intrusive data structures and asynchronous IO library
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Type||Name||Latest commit message||Commit time|
|Failed to load latest commit information.|
libdlb: data structures and utilities library Copyright (C) 2013 Daniel Beer <email@example.com> This package is a library of (primarily intrusive) data structures and asynchronous IO facilities for C programs. The subdirectories in this directory are: * src: intrusive data structures, including: - bint: arbitrary precision integers - cbuf: circular byte-buffers - containers: utility macros for intrusive data structures - hash: partially intrusive hash table - istr: memory-efficient immutable string pool - list: intrusive doubly-linked circular list - rbt: intrusive red-black tree - rbt_iter: functions for iterating over red-black trees - rbt_range: functions for efficiently computing aggregates over augmented red-black trees. - slab: pooled object allocator - slist: intrusive singly-linked list - strbuf: resizable string-buffer - strlcpy: strlcpy() and strlcat() - vector: resizable array * io: portable asynchronous IO and system utilities: - afile: asynchronous file reading/writing - clock: portable interface to a monotonic millisecond clock - handle: portable file handle abstraction - ioq: asynchronous IO queue - mailbox: asynchronous IPC primitive - runq: thread pool - syserr: portable interface to system error codes - thr: portable interface to threading primitives - waitq: asynchronous timer schedule - net: portable network initialization - adns: asynchronous DNS - asock: asynchronous TCP/IP socket * tests: automated test suite To build the tests, type "make". Nothing is required except the standard C library and GCC. Type "make test" to run each test. All the files in this package are covered by the license in the file "LICENSE". If you want to use them in your own programs, just include the files you need in your source package -- there's no need to build a shared library, and you likely don't need every file (dependencies between files exist, but are easily identified).