I usually work in gameplay and UI roles in projects that I am involved in and almost always in relatively high level languages. For this reason, in what free time I have available, I occasionally write small, low level utility libraries, mostly in C99 and therefore should be very portable
These are my Tiny Little Libraries. I don’t claim they are the most optimal solutions, nor are they the smallest. Most of the time, they are just small self contained tasks I set myself to see whether I can do it.
The design principle for all of them is very similar. They follow a few key ideas.
- Adhering to C89 or C99 standard. Allows for the libraries to run on everything more powerful than a toaster.
- Have no implied state – everything should be contained within a library context.
- No external dependencies apart form what is absolutely necessary.
- Should run at a minimum on *nix systems, and ideally all on Windows.
- Have simple API with as few exposed functions as possible to provide the functionality required.
This was my first tiny little library and the one that set the design for subsequent libraries. It takes mathematical equations (such as (x^2)+22) and will evaluate them, given values of x.
Potentially my most complicated TL library to date. A small 8 bit processor, initially with 8080 instruction set.
A little lisp interpreter. As with most of these libraries was a proof of concept. It would be nice to make this a more featureful in future.
Client-Server architecture for communicating between processes which may or may not be on the same computer
Native communication library to communicate with Mooltipass hardware password keeper.