Skip to content

A collection of high-quality, configurable, header-only libraries written in C99.

License

Notifications You must be signed in to change notification settings

San7o/micro-headers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

micro-headers
=============

MIT licensed libraries for everyone!

*micro-headers* is a collection of high-quality, configurable,
header-only libraries written in C99. The libraries are designed to be
highly reusable, simple to maintain with little to no dependencies,
and easy to integrate in your projects - just copy-paste the header
file and #include it!

The code is mainly developed for Linux, since this is what I use, but
it should work fine in other operating systems (with a little tweaking
maybe). All libraries are C99 compliant so they should work with
virtually every C or C++ compiler. Code style and usage is consistent
among all libraries, so that they feel familiar among each
other. Heavy use of macros is usually discouraged to make the code
more understandable.

Author:  Giovanni Santini
Mail:    giovanni.santini@proton.me
License: MIT


Headers
-------

- micro-tests.h:
        lightweight testing framework, with multithread support and
        run-time settings.

            https://github.com/San7o/micro-tests.h

- micro-log.h:
        configurable, thread safe logging framework. With lots of
        features.

            https://github.com/San7o/micro-log.h

- micro-draw.h:
        a 2D software renderer.

            https://github.com/San7o/micro-draw.h

- micro-lex.h:
        simple lexer for lisp-like languages, and others.

            https://github.com/San7o/micro-lex.h

- micro-arena.h:
        memory allocator (first fit). It implements the common memory
        functions from stdlib.h.

            https://github.com/San7o/micro-arena.h

- micro-serde.h:
        serialization library for C99, in ~150 lines of code.

            https://github.com/San7o/micro-serde.h

- micro-bench.h
        micro benchmarking library.

            https://github.com/San7o/micro-bench.h

- micro-flag.h:
        tiny library to parse command line arguments.

            https://github.com/San7o/micro-flag.h

- micro-module.h:
        define, load, and unload runtime modules / plugins with a
        simple C99 API.
        
            https://github.com/San7o/micro-module.h

- micro-conf.h:
        library to parse config files.

            https://github.com/San7o/micro-conf.h

- micro-hash.h:
        quick and dirty hash functions, with some benchmarks.

            https://github.com/San7o/micro-hash.h

- micro-la.h:
        linear algebra types and functions.

            https://github.com/San7o/micro-la.h

- hll.h:
        implementation of HyperLogLog for approximating the cardinality
        of large multisets.

            https://github.com/San7o/hll.h

- bloom-filter.h:
        implementation of bloom filters, a space-efficient
        probabilistic data structure that is used to test whether an
        element is a member of a set. 

            https://github.com/San7o/bloom-filter.h

- rendezvous-hasher.h:
        dependency-free implementation of Rendezvous Hashing (a.k.a.
        Highest Random Weight hashing), useful for distributing keys
        across a dynamic set of nodes.

            https://github.com/San7o/rendezvous-hasher.h

- consistent-hasher.h:
        implementation of consistent hashing, alternative to Rendezvous
        Hashing.

            https://github.com/San7o/consistent-hasher.h

- hashmap.h:
        implementation of an hashmap for any type.

            https://github.com/San7o/hashmap.h

- hashset.h:
        implementation of an hashset for any type.

            https://github.com/San7o/hashset.h

- llist.h:
        implementation of a type-safe, generic doubly-linked list.

            https://github.com/San7o/llist.h

- liblaunchpad.h:
         an abstraction layer over Novation's Launchpad S through ALSA.

            https://github.com/San7o/liblaunchpad.h

- game-of-life.h:
        Conway's Game of Life logic implementation.

            https://github.com/San7o/game-of-life.h

- micro-example.h:
          An example header-only library in C99 used as a template
          project, in the style of the great micro-headers. 

            https://github.com/San7o/micro-example.h


Related Projects
----------------

Check out the micro-tools:

    https://github.com/San7o/micro-tools

About

A collection of high-quality, configurable, header-only libraries written in C99.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages