A collection of tools for C programs

A while ago, I started writing generic implementations of algorithms and
data structures that typical C programs need and started stuffing them
into an X11 (aka MIT) licensed library.

The library can be found here: Github page

Some of the features:

  • Container data structures

    • resizeable array
    • linked list
    • hash map
    • red-black tree
    • a container for blobs of data
    • Support for abstract allocators
    • Support for external iterators

  • Data compression utility functions (e.g. deflate/inflate)
  • Data transformation utility functions (e.g. to/from base64)
  • Various non-cryptographic hash functions
  • Different sorting algorithms
  • Command line option parsing
  • Unicode string handling

    • UTF-8 based dynamic string data structure
    • UTF-8 and UTF-16 string utilities

  • Abstract filesystem and directory access

    • Automatic long path handling on Windows®
    • Memory mapping support

  • Process and thread abstraction
  • Aynchronization primitives
  • Abstract network I/O