Skip to content

dlbeer/libdlb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libdlb: data structures and utilities library
Copyright (C) 2013 Daniel Beer <dlbeer@gmail.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).

About

Intrusive data structures and asynchronous IO library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published