-
Notifications
You must be signed in to change notification settings - Fork 0
A collection of high-quality, configurable, header-only libraries written in C99.
License
San7o/micro-headers
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
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-toolsAbout
A collection of high-quality, configurable, header-only libraries written in C99.
Topics
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published