Giovanni's Diary > Subjects > Programming >

My public repositories

Here is a list of my public repositories with a brief description, ordered by latest activity (top is more recent).

micro-headers

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. website

  • micro-tests.h: lightweight, header-only testing framework, with multithread support and run-time settings.
  • micro-log.h: configurable, thread safe logging framework in C99. With lots of features.
  • micro-draw.h: a 2D software renderer.
  • micro-flag.h: tiny library to parse command line arguments.
  • micro-module.h: define, load, and unload runtime modules / plugins with a simple C99 API.
  • micro-serde.h: serialization library for C99, in ~150 lines of code.
  • micro-bench.h: micro benchmarking library.
  • micro-hash.h: quick and dirty hash functions in C99, with some benchmarks.
  • micro-la.h: linear algebra types and functions.
  • hll.h: configurable, header-only implementation of HyperLogLog, used for approximating the cardinality of large multisets.
  • bloom-filter.h: configurable, header-only implementation of bloom filters, a space-efficient probabilistic data structure.
  • rendezvous-hasher.h: dependency-free implementation of Rendezvous Hashing (a.k.a. Highest Random Weight hashing).
  • consistent-hasher.h: implementation of consistent hashing, alternative to rendezvous-hashing.
  • hashmap.h: implementation of a hashmap for any type.
  • hashset.h: implementation of a hashset for any type.
  • llist.h: type-safe, generic doubly-linked list in C99.
  • liblaunchpad.h: abstraction layer over Novation's Launchpad S through ALSA, header-only C99 library.
  • micro-example.h: example header-only library in C99 used as a template project.
  • game-of-life.h: Conway's Game of Life logic implementation.

(New) micro-tools

A collection of useful tools for programmers to solve programmer problems. Mostly written in C99.

  • micro-templating.c: simple tool to generate a file from a template, in ~200 lines of code.
  • micro-timerd: client-server application to start, stop and list timers.
  • lkde-tool: tool to develop and test kernel patches and applications across multiple kernel branches, trees, and configurations.

Highlights

Some other interesting projects that you should check out.

Misc / Old

Backlog of projects.

Setup

Custom configurations for my daily development setup and workflow.

There are many more which are not really interesting or are not public, so I didn't mention them.

Check out my gists.


Travel: Programming, Index