10 libraries · one ecosystem

Small, concise
C libraries for real-world systems.

Ten libraries that cover the full surface of building software in C from servers to CLIs, with a focus on minimal dependencies, small size, efficiency, performance, auditability, and simplicity.

C17 minimally BSD 2-Clause licensed

The libraries

01 / catalog
01 active

papago

Modern, powerful, fast, and extremely simple C web framework

httproutingwebsocketmiddleware
02 stable

maple

Lightweight, embeddable template engine written in pure C with no dependencies. Core template engine for papago

texthtmltemplate
03 stable

logger

Structured, leveled logging (JSON) for C applications.

loggingjson
04 stable

spinner

C library with 90 configurable terminal spinner/progress indicators.

terminalprogresscli
05 stable

rattler

Feature-rich framework for building command-line applications in C with no dependencies.

cliconfigcli
06 stable

github

C bindings for the GitHub REST API — repos, releases, issues, and workflow runs, built for release-automation tooling.

apigithubautomation
07 stable

crosscheck

Simple yet powerful unit testing library.

apicrosschecktesting
08 stable

benchmark

Simple library to benchmark C functions across N of threads.

apibenchmarkbenchmarking
09 active

saguaro

Lightweight authorization/RBAC library.

rbacembeddedsecurity
10 active

retry

Library for running functions that may fail and need be tried again.

retryembeddedautomation

Get running in seconds...

02 / quickstart

All of the libraries follow the same basic pattern using make.

Keeping the build system simple and consistent allows you to get up and running quickly, without needing to learn anything new.

sh
# build and install a library, e.g. libpapago
  git clone https://github.com/briandowns/libpapago.git
  cd libpapago
  make && sudo make install

  # write some code and ...

  # app build
  $(CC) main.c -o web_app -lpapago 

Philosophy

03 / principles
01

Small

Every library should be auditable by one person quickly.

02

Minimal or zero dependencies

Most libraries require no external dependencies. Others may have optional or minimal dependencies.

03

Compatibility

Built to run on Linux, macOS, and FreeBSD

04

Documentation for fast consumption

Provide detailed documentation of all functionality to maximize user efficacy.