Need help with single_file_libs?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.
nothings

Description

List of single-file C/C++ libraries.

6.1K Stars 400 Forks 260 Commits 76 Opened issues

Services available

Need anything else?

Single-file public-domain/open source libraries with minimal dependencies

I am the author of a large number of single-file C/C++ public domain libraries. I am not the only person who writes libraries like this, so below are other, similar libraries.

Generally, the following is a list of small, easy-to-integrate, portable libraries which are usable from C and/or C++, and should be able to be compiled on both 32-bit and 64-bit platforms. However, I have not personally verified that any specific lilbrary is as advertised, or is quality software.

Rules

  • Libraries must be usable from C or C++, ideally both
  • Libraries should be usable from more than one platform (ideally, all major desktops and/or all major mobile)
  • Libraries should compile and work on both 32-bit and 64-bit platforms
  • Libraries should use at most two files (one header, one source)

Exceptions will be allowed for good reasons.

Recent additions

Recent additions are marked with an asterisk in the left column.

New libraries and corrections

See discussion after the list.

JSON Parsing

There are a lot of JSON parsers listed here. For some analysis and performance results, check out https://github.com/miloyip/nativejson-benchmark

Other lists

Also you might be interested in other related, but different lists:

  • clib: list of (mostly) small single C functions (licenses not listed)
  • CCAN: package of lots of shareable C functions (mixed licenses)

Library listing

Public domain single-file libraries usable from C and C++ are in bold. Other libraries are either non-public domain, or two files, or not usable from both C and C++, or all three. Libraries of more than two files are mostly forbidden.

For the API column, "C" means C only, "C++" means C++ only, and "C/C++" means C/C++ usable from either; some files may require building as C or C++ but still qualify as "C/C++" as long as the header file uses

extern "C"
to make it work. (In some cases, a header-file-only library may compile as both C or C++, but produce an implementation that can only be called from one or the other, because of a lack of use of
extern "C"
; in this case the table still qualifies it as C/C++, as this is not an obstacle to most users.)

Categories:

AI

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | Genann | zlib |C/C++| 2 | simple neural networks (ANN) | KANN | MIT |C/C++| 2 | automatic differentiation (2 files) | micropather | zlib | C++ | 2 | pathfinding with A*

argv

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | Argh! | BSD | C++ |1| command-line argument parsing | Clara | Boost | C++ |1| composable, command line parser for C++ 11 and beyond | CLI11 | BSD | C++ |1| Feature-rich CLI parsing in modern C++11 | cmdline | BSD | C++ |1| command-line argument parsing | flags | public domain | C++ |1| command-line argument parsing | kgflags | MIT |C/C++|1| command-line argument parsing | linkom | MIT |C/C++|1| command-line argument parsing w/ DOS-style options | optionparser | MIT | C++ |1| command-line argument parsing | parg | public domain | C | 2 | command-line argument parsing | ProgramOptions.hxx | MIT | C++ |1| command-line argument parsing

audio

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | aw_ima.h | MIT |C/C++|1| IMA-ADPCM audio decoder | btac1c| MIT |C/C++|1| MS-IMA_ADPCM variant |dr_flac | public domain |C/C++|1| FLAC audio decoder |dr_wav | public domain |C/C++|1| WAV audio loader | Geneva | MIT |C/C++|1| Library generating 8-bit waveforms of various kinds | minimp3 | CC0 | C |1| Minimalistic MP3 decoder with sse/neon support |miniaudio | public domain |C/C++|1| Audio playback and capture library | pocketmod | MIT |C/C++|1| ProTracker MOD file renderer |sts_mixer | public domain |C/C++|1| simple stereo audio mixer | tinysound | zlib |C/C++|1| direct sound audio mixer & WAV loader | TinySoundFont | MIT |C/C++|1| SoundFont2 loader & synthesizer

compression

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | dmc_unrar | GPLv2+ |C/C++|1| RAR file decompression | fastlz | MIT |C/C++| 2 | fast but larger LZ compression | lz4 | BSD |C/C++| 2 | fast but larger LZ compression |miniz.c | MIT |C/C++|1| compression, decompression, ZIP file, PNG writing | microtar | MIT |C/C++| 2 | lightweight tar library | pithy | BSD |C/C++| 2 | fast but larger LZ compression

crypto

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | Monocypher | public domain | C | 2 | high-quality small cryptography library | TweetNaCl | public domain | C | 2 | high-quality tiny cryptography library

data structures

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | avl | public domain |C/C++| 2 | AVL tree | c-bool-value | WTFPLv2 |C/C++| 1 | Simple and easy boolean values in standard c | chobo-shl | MIT | C++ |1| several C++11 standard contaner like libraries and helpers |DG_dynarr.h | public domain |C/C++|1| typesafe dynamic arrays (like std::vector) for plain C | DynaVar | GPL-3.0 | C++ | 1 | Object which can store any type of primitive data type | klib | MIT |C/C++| 2 | many 2-file libs: hash, sort, b-tree, etc | libpqueue | BSD |C/C++| 2 | priority queue (heap) | minilibs | public domain | C | 2 | two-file binary tress (also regex, etc) | PackedArray | WTFPLv2 | C | 2 | memory-efficient array of elements with non-pow2 bitcount | simclist | BSD |C/C++| 2 | linked-list | selist | ISC |C/C++| 2 | space-efficient linked-list | mempool | MIT | C++ |1| Efficient minimal memory pool implementation for C++ | uthash | BSD |C/C++| 2 | several 1-header, 1-license-file libs: generic hash, list, etc

debugging

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | dbgtools | zlib |C/C++| 2 | cross-platform debug util libraries | debug-assert | zlib | C++ |1| modular assertion macro | debugbreak | BSD |C/C++|1| programmatic debug break | loguru | public domain | C++ |1| flexible logging | pempek_assert.cpp | WTFPLv2 | C++ | 2 | flexible assertions

files & filenames

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- |DG_misc.h | public domain |C/C++|1| Daniel Gibson's stb.h-esque cross-platform helpers: path/file, strings | dirent | MIT |C/C++|1| dirent for Windows: retrieve file & dir info | tfile | MIT |C++|1| FILE* wrapper does read-write-append-seek-close (Win/Mac/Unix) | TinyDir | BSD | C |1| cross-platform directory reading (Win/POSIX/MinGW) | tinyfiles | zlib |C/C++|1| cross-platform directory reading (Win/Mac/Unix) | whereami | WTFPLv2 |C/C++| 2 | get path/filename of executable or module

geometry file

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | cgltf | MIT | C |1| glTF 2.0 file loader | fast_obj.h | MIT | C |1| wavefront OBJ file loader | objzero | MIT | C | 2 | wavefront OBJ file loader | tinyply | public domain | C++ | 2 | PLY mesh file loader | tinyobjloader | MIT | C++ |1| wavefront OBJ file loader | tinyobjloader-c | MIT | C |1| wavefront OBJ file loader | tk_objfile | MIT |C/C++|1| OBJ file loader | yocto_obj.h | MIT |C/C++|1| wavefront OBJ file loader

geometry math

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | Clipper | Boost | C++ | 2 | line & polygon clipping & offsetting |df | public domain |C/C++|1| find voronoi region in linear time of size of lattice | jc_voronoi | MIT |C/C++|1| find voronoi regions on float/double data | nanoflann | BSD | C++ |1| build KD trees for point clouds |nv_voronoi.h | public domain |C/C++|1| find voronoi regions on lattice w/ integer inputs | par_msquares | MIT |C/C++|1| convert (binarized) image to triangles | par_shapes | MIT |C/C++|1| generate various 3d geometric shapes | PolyPartition | MIT | C++ | 2 | polygon triangulation, partitioning |rjm_mc.h | public domain |C/C++|1| marching cubes triangulator |sobol.h | public domain |C/C++|1| sobol & stratified sampling sequences | sdf.h | MIT |C/C++|1| compute signed-distance field from antialiased image | Tomas Akenine-Moller snippets | public domain |C/C++| 2 | various 3D intersection calculations, not lib-ified | Voxelizer | MIT |C/C++|1| convert triangle mesh to voxel triangle mesh | xatlas | MIT | C++ | 2 | mesh parameterization | yocto_bvh.h | MIT |C/C++|1| ray-casting and closest-element queries of bounding-volume hierarchy | yocto_shape.h | MIT |C/C++|1| shape generation, tesselation, normals, etc.

graphics (text)

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | rang | public domain | C++ |1| cross-platform colored console text

graphics (2d)

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | blendish | MIT |C/C++| 1 | blender-style widget rendering using NanoVG | Cimg | CeCILL/CeCILL-C | C++ |1| image processing toolkit (60K LoC) | Immediate2D | public domain | C++ | 2 | zero-configuration, immediate-mode 2D graphics for Windows | noc_turtle | MIT |C/C++| 2 | procedural graphics generator | tigr | public domain |C/C++| 2 | quick-n-dirty window text/graphics for Windows and macOS

graphics (3d)

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | debug-draw | public domain | C++ |1| API-agnostic immediate-mode debug rendering |lightmapper | public domain |C/C++|1| use your OpenGL renderer to offline bake lightmaps | mikktspace| zlib|C/C++| 2 | compute tangent space for normal mapping | rjm_raytrace.h | public domain |C/C++|1| minimalistic SSE packet raytracer for offline baking |seamoptimizer | public domain |C/C++|1| modify lightmap data to hide seams | sokol_gfx.h | MIT |C/C++|1| cross-platform 3D API wrapper (GLES2+3/GL3/D3D11/Metal) | Swarmz | public domain | C++ |1| swarming/flocking algorithm | tinygizmo | public domain | C++ | 2 | gizmo objects for interactively editing 3d transformations |Vertex Cache Optimizer | public domain |C/C++|1| vertex cache optimization of meshes | Vulkan Memory Allocator|MIT|C/C++|1| memory allocator for Vulkan | yocto_trace.h | MIT |C/C++|1| physically-based unidirectional path tracer w/ MIS for direct lights | yocto_symrigid.h | MIT |C/C++|1| rigid body simulator (sequential impulse/PGS) with support for concave objects

hardware

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- |EasyTab | public domain |C/C++|1| multi-platform tablet input | libue | MIT |C/C++| 1 | Helper library for Linux device hot-plug event

hashing

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | xxHash | BSD |C/C++| 2 | fast hash function

images

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | EXR miniexr | public domain | C++ | 2 | OpenEXR writer, needs header file | EXR tinyexr | BSD |C/C++|1| EXR image read/write, uses miniz internally | GIF gif.h | public domain | C++ |1| animated GIF writer (can only include once) | GIF gif_load | public domain |C/C++|1| (animated) GIF reader | GIF jo_gif.cpp | public domain | C++ |1| animated GIF writer (CPP file can also be used as H file) | JPG jpeg-compressor | public domain | C++ | 2 | 2-file JPEG compress, 2-file JPEG decompress | JPG NanoJPEG | MIT |C/C++|1| JPEG decoder | JPG tiny_jpeg.h | public domain |C/C++|1| JPEG encoder | JPG EXIF easyexif | MIT | C++ | 2 | EXIF metadata extractor for JPEG images | JPG EXIF TinyEXIF | BSD | C++ | 2 | Parse EXIF data from JPEG (XMP w/ TinyXML2 lib) | PDF PDFgen | public domain | C | 2 | PDF writer | | PNG lodepng | zlib |C/C++| 2 | PNG encoder/decoder | PNG picopng.cpp | zlib | C++ | 2 | tiny PNG loader | PNG TinyPngOutput | LGPLv3 |C/C++| 2 | PNG writer | | PNM PNM | Apache 2.0 | C++ | 1 | PBM, PGM and PPM reader and writer | | SVG nanoSVG | zlib |C/C++|1| 1-file SVG parser; 1-file SVG rasterizer |cro_mipmap.h | public domain |C/C++|1| average, min, max mipmap generators | rjm_texbleed.h | public domain |C/C++|1| Fills in the color of pixels where alpha==0

math

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | amoeba | MIT |C/C++|1| constraint solver (Cassowary) w/Lua binding | fft | public domain | C++ |1| Fast Fourier Transform | | PoissonGenerator.h | MIT | C++ |1| Poisson disk points generator (disk or rect) | prns.h | public domain |C/C++|1| seekable pseudo-random number sequences |rnd.h | public domain |C/C++|1| pseudo-random number generation | ShaderFastLibs | MIT | C++ |1| (also HLSL) approximate transcendental functions optimized for shaders (esp. GCN) | simrank.hpp | MIT | C++ | 2 | SimRank graph similarity algorithm | SummedAreaTable | MIT | C++ |1| Summed-Area Table generation and sum/avg queries | TinyExpr | zlib | C | 2 | evaluation of math expressions from strings

multithreading

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | bikeshed.h | MIT |C/C++|1| cross-platform lock free fixed memory hierarchical work scheduler | mm_sched.h | zlib |C/C++|1| cross-platform multithreaded task scheduler based on enkiTS |thread.h | public domain |C/C++|1| cross-platform thread primitives | TinyCThread | zlib |C/C++| 2 | cross-platform implementation of the C11 Threads API | TinyThread++ | zlib | C++ | 2 | cross-platform implementation of the C++11 Threads API

network

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | civetweb | MIT |C/C++| 2 | HTTP server, fork of Mongoose | EWS | BSD |C/C++|1| HTTP server | happyhttp | zlib | C++ | 2 | HTTP client requests |http | public domain |C/C++|1| HTTP get/post | libcluon | MPL-2.0 | C++ |1| cross-platform socket wrapper and data marshalling with native implementations for Protobuf, LCM/ZCM, JSON, and MsgPack serialization/deserialization | LUrlParser | MIT | C++ | 2 | lightweight URL & URI parser RFC 1738, RFC 3986 | mm_web.h | BSD |C/C++|1| lightweight webserver, fork of webby | mongoose | GPLv2 |C/C++| 2 | HTTP server | par_easycurl.h | MIT |C/C++|1| cURL wrapper |sts_net | public domain |C/C++|1| cross-platform socket wrapper (socket sets and packet API) | yocto | public domain |C/C++| 2 | non-production-use HTTP server |zed_net | public domain |C/C++|1| cross-platform socket wrapper | znet | MIT |C/C++|1| cross-platform networking w/ Lua binding

serialization

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | archive |public domain | C++ |1| binary serialize & deserlize w/ STL support | libcluon | MPL-2.0 | C++ |1| cross-platform data serialization/deserialization with native implementations for Protobuf, LCM/ZCM, JSON, and MsgPack

json

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | ajson | Boost | C++ |1| JSON serialize & deserialize w/ STL support | cJSON | MIT |C/C++|1| JSON parser | json.h | public domain |C/C++| 2 | JSON parser | json.hpp | MIT | C++ |1| JSON parse, serialize, deserialize | jzon.h | MIT | C++ | 2 | JSON parser | PicoJSON | BSD | C++ |1| JSON parse/serializer | parson | MIT |C/C++| 2 | JSON parser and serializer

yaml

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | mini-yaml | MIT | C++ | 2 | YAML parser and serializer

csv

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | CSVstream | MIT | C++ |1| CSV parser | Fast C++ CSV Parser | BSD | C++ |1| CSV parser | Rapidcsv | BSD | C++ |1| CSV parser | Vince's CSV Parser | MIT | C++ |1| CSV parser and serializer

parsing

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | cmp | MIT |C/C++| 2 | MessagePack parser and serializer | inih | BSD |C/C++| 2 | .ini file parser |ini.h | public domain |C/C++|1| .ini file parser | minilibs | public domain | C | 2 | two-file regex (also binary tree, etc) | mm_lexer.h | zlib |C/C++|1| C-esque language lexer | SLRE |GPLv2 |C/C++|1| regular expression matcher | tinymemfile | zlib | C++ |1| fscanf on in-memory files

profiling

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | MicroProfile | public domain | C++ | 2-4 | CPU (and GPU?) profiler, 1-3 header files, uses miniz internally | prof | MIT |C/C++|1| profiler for Linux | Remotery | Apache 2.0 |C/C++| 2 | CPU/GPU profiler Win/Mac/Linux, using web browser for viewer

scripting

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | Duktape | MIT | C | 2 | embeddable JavaScript engine | MY-BASIC | MIT | C | 2 | interpreter for a BASIC dialect scripting language | LIL | zlib |C/C++| 2 | interpreter for a Tcl-like scripting language | lualite | MIT | C++ |1| generate Lua bindings in C++ | Picol | BSD |C/C++|1| interpreter for a Tcl-like scripting language | s7 | BSD |C/C++| 2 | interpreter for a subset of Scheme (R5RS/R7RS)

strings

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | dfa | MIT |C/C++| 2 | fast UTF-8 decoder (need a header file) |DG_misc.h | public domain |C/C++|1| Daniel Gibson's stb.h-esque cross-platform helpers: path/file, strings |gb_string.h | public domain |C/C++|1| dynamic strings | Obfuscate | public domain | C++ |1| Guaranteed compile-time string literal obfuscation library for C++14 | inja.hpp | MIT | C++ |1| template engine |strpool.h | public domain |C/C++|1| string interning | str_view.hpp | MIT | C++ |1| null-termination-aware string-view class |utf8 | public domain |C/C++|1| UTF-8 string library

unit testing

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | catch | Boost | C++ |1| unit testing | catch2 | Boost | C++ |1| unit testing | doctest | MIT | C++ |1| unit testing | fctx | BSD |C/C++|1| unit testing | greatest | iSC | C |1| unit testing | hippomocks | LGPL | C++ |1| unit testing |labrat | public domain |C/C++|1| unit testing | minctest | zlib | C |1| unit testing | munit | MIT | C |1| unit testing | SPUT | BSD |C/C++|1| unit testing | trompeloeil | Boost | C++ |1| unit testing | utest | MIT |C/C++|1| unit testing |utest.h | public domain |C/C++|1| unit testing

user interface

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | dear imgui | MIT | C++ | 9 | an immediate-mode GUI formerly named "ImGui"; 3rd-party C wrapper | libcmdf | public domain | C |1| a small library for writing CLI applications | linenoise | BSD |C/C++| 2 | terminal readline w/ history etc | nocfiledialog.h | MIT |C/C++| 1 | file open/save dialogs (Win/Mac/Linux) | nuklear | public domain |C/C++|1| minimal GUI toolkit | tinyfiledialogs | ZLIB |C/C++| 2 | modal dialogs inc. file open/save (Win/Mac/Linux) | wcwidth9 | Apache 2.0 | C | 1 | platform independent wcwidth with full unicode 9 support

vectors

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | algebra3.h | public domain | C++ |1| vector utilities for 2, 3, and 4 element vectors, all inline |ccVector.h | public domain |C/C++|1| Vector, quaternion and matrix math |gb_math | public domain |C/C++|1| Vector, quaternion and matrix math w/o math.h |Handmade Math | public domain |C/C++|1| vector math | linalg.h | public domain | C++ |1| vector/matrix/quaternion math | linalg | ISC |C/C++|1| vector/matrix/quaternion math | mm_vec.h | BSD |C/C++|1| SIMD vector math

video

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | jo_mpeg | public domain | C++ |1| MPEG file writer

videogames

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- |app.h | public domain |C/C++|1| Windows-only-but-meant-to-be-cross-platform game-ish framework

miscellaneous

| library | license | API |files| description | --------------------------------------------------------------------- |:--------------------:|:---:|:---:| ----------- | ASAP | MIT | C++ |1| library for parsing, printing, iterating and operating on dates. | cpp-generators | BSD | C++ |1| generators in C++ | Hedley | public domain |C/C++|1| compiler portability, optimization, static analysis, etc. | levenshtein | MIT |C/C++| 2 | compute edit distance between two strings | MakeID.h | public domain | C++ |1| allocate/deallocate small integer IDs efficiently | picobench | MIT | C++ |1| microbenchmarking | PlusCallback | zlib | C++ |1| function/method callbacks |process.h | public domain |C/C++|1| process control API | random | MIT | C++ |1| convenient API for random | sokol_time.h | MIT |C/C++|1| cross-platform time measurement | stmr | MIT | C | 2 | extract English word stems | tinyformat | Boost | C++ |1| typesafe printf | tinytime | zlib |C/C++|1| quick-and-dirty time elapsed time | visit_struct | Boost | C++ | 2 | struct-field reflection

There are also these XML libraries, but I am so significantly not a fan of XML that I've consigned these to the basement to make you think twice.

  • parsing: tinyxml2: XML (zlib license)
  • parsing: pugixml: XML (MIT license)
  • parsing: yxml: XML (MIT license)

New libraries and corrections

Submissions of new libraries: I accept submissions (as issues or as pull requests). Please note that every file that must be included in a user's project counts; a header and a source file is 2 files, but a header file, source file, and LICENSE (if the license isn't in the source file) is 3 files, and won't be accepted, because it's not 2 files. But actually 'LICENSE' is a problem for just dropping the library in a source tree anyway, since it's not scoped to just the library, so library authors are encouraged to include the license in the source file and not require a separate LICENSE.

Corrections: if information for a library above is wrong, please send a correction as an issue, pull request, or email. Note that if the list indicates a library works from both C/C++, but it doesn't, this could be an error in the list or it could be a bug in the library. If you find a library doesn't work in 32-bit or 64-bit, the library should be removed from this list, unless it's a bug in the library.

List FAQ

Can I link directly to this list?

Yes. This is the preferred link.

Why isn't library XXX which is made of 3 or more files on this list?

I draw the line arbitrarily at 2 files at most. (Note that some libraries that appear to be two files require a separate LICENSE file, which made me leave them out). Some of these libraries are still easy to drop into your project and build, so you might still be ok with them. But since people come to stb for single-file public domain libraries, I feel that starts to get too far from what we do here.

Why isn't library XXX which is at most two files and has minimal other dependencies on this list?

Probably because I don't know about it, feel free to submit a pull request, issue, email, or tweet it at me (it can be your own library or somebody else's). But I might not include it for various other reasons, including subtleties of what is 'minimal other dependencies' and subtleties about what is 'lightweight'.

Why isn't SQLite's amalgamated build on this list?

Come on.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.