Packages made for 🐚 Bash, 🖥️ Command prompt, 📦 Node.js, 🌐 Web, and ⚙️ C/C++.
| Package | Description |
|---|---|
| 🐚 cls.sh | Clear screen and scrollback on Linux. |
| 🖥️ clear.cmd | Clear screen like Unix in Windows Command prompt. |
| 🖥️ sleep.cmd | Sleep for specified time in Windows Command prompt. |
| 🐚 extra-cd | Change the working directory, with shortcuts and listing. |
| 🐚 extra-bel.sh | Produce BEL sound in Linux Terminal. |
| 🐚 nvgraph.sh | CLI for nvGraph, which is a GPU-based graph analytics library written by NVIDIA, using CUDA. |
| 🐚 snap-data.sh | CLI for SNAP dataset, which is a collection of more than 50 large networks. |
| Package | Description |
|---|---|
| 🌐 extra-boolean | Boolean data type has two possible truth values to represent logic. |
| 🌐 extra-bit | The bit is a basic unit of information in information theory, computing. |
| 🌐 extra-integer | A 32-bit integer can store values from −2^31 to 2^31 − 1. |
| 🌐 extra-number | A number is a mathematical object used to count, measure, and label. |
| 🌐 extra-bigint | A BigInt can represent whole numbers larger than 2⁵³ - 1. |
| 🌐 extra-math | Mathematics is the classification and study of all possible patterns. |
| 🌐 extra-function | A function is a set of statements that performs a task or calculates a value. |
| 🌐 extra-async-function | An async function is a function that delivers its result asynchronously (through Promise). |
| 🌐 extra-array | An Array is a collection of values, stored contiguously. |
| 🌐 extra-iterable | An iterable is a sequence of values. |
| 🌐 extra-object | An Object is a collection of properties (entries), each with a name (key) and a value. |
| 🌐 extra-set | A Set is a collection of unique values. |
| 🌐 extra-map | A Map is a collection of key-value pairs, with unique keys. |
| 🌐 extra-entries | Entries is a list of key-value pairs, with unique keys. |
| 📦 extra-child-process | Useful additions to inbuilt child_process module. |
| 🌐 extra-path | Useful additions to inbuilt path module. |
| 📦 extra-fs | Useful additions to inbuilt fs module. |
| 🌐 extra-sleep | Sleep for specified time. |
| 🌐 extra-jsdoc-text | Utilities for processing JSDoc text. |
| 🌐 extra-javascript-text | Utilities for processing JavaScript text. |
| 🌐 extra-markdown-text | Utility methods for Markdown text. |
| 📦 extra-build | Common build tools for extra-* packages. |
| Package | Description |
|---|---|
| 🌐 extra-lists | Lists is a pair of key list and value list, with unique keys. |
| 🌐 extra-string | A collection of common string functions. |
| 🌐 extra-wordnet | WordNet is a lexical database of semantic relations between words. |
| 🌐 extra-sorted-array | A sorted array is a collection of values, arranged in an order. |
| Package | Description |
|---|---|
| ⚙️ agnes.c | NES emulation library with an easy to use API; Krzysztof Gabis (2019). |
| ⚙️ apelang.c | Ape Programming Language; Krzysztof Gabis (2020). |
| ⚙️ atomix.c | Portable, single-file, wait-free atomic sound mixing library utilizing SSE-accelerated mixing; BareRose (2018). |
| ⚙️ b_stacktrace.c | A minimalistic single-header multi-platform C89 lib for stack tracing; Borislav Stanimirov (2020). |
| ⚙️ bikeshed.c | Lock free hierarchical work scheduler; Dan Engelbrecht (2019). |
| ⚙️ buddy_alloc.c | A single header buddy memory allocator for C & C++; Stanislav Paskalev (2021). |
| ⚙️ ccvector.c | A vector and matrix math library; Job Talle (2015). |
| ⚙️ cds_sync.c | Single-header C90 collection of synchronization primitives; Cort Stratton (2015). |
| ⚙️ cgltf.c | 💠 Single-file glTF 2.0 loader and writer written in C99; Johannes Kuhlmann (2018). |
| ⚙️ chasm.c | Chasm Runtime Assembler; Aqil Contractor (2025). |
| ⚙️ clay.c | High performance UI layout library in C; Nic Barker (2024). |
| ⚙️ clove-unit.c | Single-Header Unit Testing framework for C (interoperable with C++) with test autodiscovery feature; Federico De Felici (2021). |
| ⚙️ cmp.c | An implementation of the MessagePack serialization format in C / msgpack.org[C]; Charlie Gunyon (2014). |
| ⚙️ concord.c | A Discord API wrapper library made in C; Cogmasters (2020). |
| ⚙️ csplit.c | A single header C library to simplify splitting and processing strings; Jakub Wlodek (2019). |
| ⚙️ debugbreak.c | Break into the debugger programmatically; Scott Tsai (2011). |
| ⚙️ dmc_unrar.c | A dependency-free, single-file FLOSS unrar library; Sven Hesse (2017). |
| ⚙️ doops.c | Single C file event loop; Eduard Suica (2019). |
| ⚙️ dr_libs.c | Audio decoding libraries for C/C++, each in a single source file; David Reid (2015). |
| ⚙️ endianness.c | Simple public domain header to get endianess at compile time on a variety of platforms; rofl0r (2017). |
| ⚙️ errnoname.c | errnoname is a C library that lets us get the symbolic name for each errno integer value; mentalisttraceur (2019). |
| ⚙️ fast_obj.c | Fast C OBJ parser; Richard Knight (2018). |
| ⚙️ fctx.c | C unit testing in a header (works for C++ too!); Ian Blumel (2008). |
| ⚙️ genann.c | simple neural network library in ANSI C; Lewis Van Winkle (2016). |
| ⚙️ greatest.c | A C testing library in 1 file. No dependencies, no dynamic allocation. ISC licensed; Scott Vokes (2012). |
| ⚙️ handmademath.c | A simple math library for games and computer graphics. Compatible with both C and C++. Public domain and easy to modify; Ben Visness (2016). |
| ⚙️ hedley.c | A C/C++ header to help move #ifdefs out of your code; Evan Nemerson (2016). |
| ⚙️ hypatia.c | A header-only, pure-C math library for 2D/3D graphics (matrix, vector, quaternion) Seeks to be close to C89/C90 compliant for portability. It's like a BLAS, but easier to use; Darryl T. Agostinelli (2015). |
| ⚙️ inih.c | Simple .INI file parser in C, good for embedded systems; Ben Hoyt (2009). |
| ⚙️ jo_mpeg.c | Simple, Minimalistic, No Allocations MPEG writer - without audio; Jon Olick and Wladislav Artsimovich (2016). |
| ⚙️ kann.c | A lightweight C library for artificial neural networks; Attractive Chaos (2016). |
| ⚙️ kgflags.c | kgflags is an easy to use command-line flag parsing library; Krzysztof Gabis (2020). |
| ⚙️ labrat.c | Simple, single-file test harness for C/C++; Alex Thayer (2016). |
| ⚙️ levenshtein.c | Levenshtein algorithm in C; Titus (2015). |
| ⚙️ libcmdf.c | Single-header library for writing CLI applications in C/C++; Ronen Kreimer (2017). |
| ⚙️ libgb.c | gb single-file public domain libraries for C & C++; gingerBill (2015). |
| ⚙️ lightmapper.c | A C/C++ single-file library for drop-in lightmap baking. Just use your existing OpenGL renderer to bounce light; ands (2016). |
| ⚙️ linenoise.c | A small self-contained alternative to readline and libedit; Salvatore Sanfilippo (2010). |
| ⚙️ lz4.c | Extremely Fast Compression algorithm; lz4 (2011). |
| ⚙️ microtar.c | A lightweight tar library written in ANSI C; rxi (2016). |
| ⚙️ minctest.c | tiny unit testing framework for ANSI C; Lewis Van Winkle (2015). |
| ⚙️ miniaudio.c | Audio playback and capture library written in C, in a single source file; David Reid (2016). |
| ⚙️ minicoro.c | Single header stackful cross-platform coroutine library in pure C; Eduardo Bart (2021). |
| ⚙️ minilua.c | Single-file port of Lua, a powerful scripting language; Eduardo Bart (2020). |
| ⚙️ minimp3.c | Minimalistic MP3 decoder single header library; Lion (2018). |
| ⚙️ miniz.c | miniz: Single C source file zlib-replacement library, originally from code.google.com/p/miniz; Rich Geldreich (2011). |
| ⚙️ model3d.c | 3D model format specification and single header SDK. Supports skeletal animations, voxels and has the best data density; bzt (2019). |
| ⚙️ mongoose.c | Embedded web server, with TCP/IP network stack, MQTT and Websocket; Cesanta Software (2010). |
| ⚙️ monocypher.c | An easy to use, easy to deploy crypto library; Loup Vaillant (2016). |
| ⚙️ munit.c | µnit is a small testing framework for C; Evan Nemerson (2016). |
| ⚙️ my_basic.c | A lightweight BASIC interpreter written in standard C in dual files. Aims to be embeddable, extendable and portable; Tony Wang (2014). |
| ⚙️ nuklear.c | A single-header ANSI C immediate mode cross-platform GUI library; Micha Mettke (2015). |
| ⚙️ openmodal.c | Dependency free, cross-platform, single header lib to open native file modals; bzt (2023). |
| ⚙️ parg.c | Parser for argv that works similarly to getopt; Jørgen Ibsen (2015). |
| ⚙️ parson.c | Lightweight JSON library written in C; Krzysztof Gabis (2012). |
| ⚙️ picotest.c | Picotest is a minimal C89 unit test framework, consisting of a single header file that defines 7 macros.; colinbarry (2020). |
| ⚙️ pl_mpeg.c | Single file C library for decoding MPEG1 Video and MP2 Audio; Dominic Szablewski (2019). |
| ⚙️ pocketmod.c | Small ANSI C library for turning ProTracker MOD files into playable PCM audio; rombankzero (2018). |
| ⚙️ pocketpy.c | Portable Python 3.x Interpreter in Modern C for Game Scripting; pocketpy (2022). |
| ⚙️ prideout.c | single-file C libraries from Philip Allan Rideout; Philip Rideout (2015). |
| ⚙️ qr-code-generator.c | High-quality QR Code generator library in Java, TypeScript/JavaScript, Python, Rust, C++, C; Nayuki (2016). |
| ⚙️ ranxoshi256.c | Portable, single-file, PRNG library implementing the xoshiro256** algorithm; BareRose (2018). |
| ⚙️ remimu.c | Single-file header-only regex engine, C99/C++11; Alexander Nadeau (2024). |
| ⚙️ remotery.c | Single C file, Realtime CPU/GPU Profiler with Remote Web Viewer; Celtoys (2014). |
| ⚙️ rexo.c | Neat single-file cross-platform unit testing framework for C/C++; Christopher Crouzet (2018). |
| ⚙️ rfft.c | Reasonably fast Fourier transform in a single header for C and C++; grego (2023). |
| ⚙️ rfont.c | Simple-to-use single header modular font rendering library written in C; Riley Mabb (2023). |
| ⚙️ rgfw.c | A cross platform lightweight single-header simple-to-use window abstraction library for creating graphical programs or libraries; Riley Mabb (2023). |
| ⚙️ slre.c | Super Light Regular Expressions; Aquefir (2013). |
| ⚙️ statistics-tool-box.c | Single header file with a bunch of useful statistical functions such as ANOVA, Kruskal-Wallis, T-test, etc; Gerben Voshol (2018). |
| ⚙️ stb.c | stb single-file public domain libraries for C/C++; Sean Barrett (2014). |
| ⚙️ stmr.c | Porter Stemmer algorithm in C; Titus (2014). |
| ⚙️ str.c | str: yet another string library for C language; Maxim (2020). |
| ⚙️ subprocess.c | 🐜 single header process launching solution for C and C++; Neil Henning (2017). |
| ⚙️ tflac.c | A single file, freestanding FLAC encoding library in C89; John Regan (2024). |
| ⚙️ tigr.c | TIGR - the TIny GRaphics library for Windows, macOS, Linux, iOS and Android. |
| ⚙️ tinycthread.c | Small, portable implementation of the C11 threads API; Evan Nemerson (2012). |
| ⚙️ tinyexpr.c | tiny recursive descent expression parser, compiler, and evaluation engine for math expressions; Lewis Van Winkle (2016). |
| ⚙️ tinyfiledialogs.c | Modal dialogs inc. file open/save (Win/Mac/Linux); Guillaume Vareille (2014). |
| ⚙️ tinyobjloader.c | Header only tiny wavefront .obj loader in pure C99; Syoyo Fujita (2016). |
| ⚙️ utest-h.c | 🧪 single header unit testing framework for C and C++; Neil Henning (2015). |
| ⚙️ utest.c | An ultra-lightweight, micro unit test framework for C99 presented as a single-header; Oli Wilkinson (2015). |
| ⚙️ utf8.c | 📚 Single header utf8 string functions for C and C++; Neil Henning (2015). |
| ⚙️ uthash.c | C macros for hash tables and more; Troy D. Hanson (2005). |
| ⚙️ uuid_h.c | Single file, STB-style, "lib" to generate uuid:s; Fredrik Kihlander (2016). |
| ⚙️ uuid4.c | UUID v4 generation in C; Grégory Pakosz (2019). |
| ⚙️ voxelizer.c | Header only mesh voxelizer in c99; Karim Naaji (2016). |
| ⚙️ walter.c | Write unit tests in C with no boilerplate; irek (2022). |
| ⚙️ wcwidth9.c | Platform independent, header only, wcwidth with full unicode 9 support; Joshua Rubin (2016). |
| ⚙️ webby.c | A tiny webserver for game development; Andreas Fredriksson (2012). |
| ⚙️ webview.c | Tiny cross-platform webview library for C/C++. Uses WebKit (GTK/Cocoa) and Edge WebView2 (Windows); Serge Zaitsev (2017). |
| ⚙️ yxml.c | Yxml is a small (6 KiB) non-validating yet mostly conforming XML parser written in C; Yorhel (2013). |
Source: r-lyeh/single_file_libs
| Package | Description |
|---|---|
| ⚙️ algebra3.cxx | Vector utilities for 2, 3, and 4 element vectors, all inline; Jean-Francois Doue, Paul S. Heckbert, and J. Nagle (1993). |
| ⚙️ asap.cxx | A C++ header-only library for creating, displaying, iterating and manipulating dates; Leonardo Guilherme de Freitas (2017). |
| ⚙️ canvas_ity.cxx | A tiny, single-header canvas-like 2D rasterizer for C++; Andrew Kensler (2022). |
| ⚙️ catch2.cxx | A modern, C++-native, test framework for unit-tests, TDD and BDD - using C++14, C++17 and later (C++11 support is in v2.x branch, and C++03 on the Catch1.x branch); Martin Hořeňovský (2010). |
| ⚙️ cds_job.cxx | C++11 lock-free job queue; Cort Stratton (2016). |
| ⚙️ cimg.cxx | The CImg Library is a small and open-source C++ toolkit for image processing; GREYC (2018). |
| ⚙️ cista.cxx | Cista is a simple, high-performance, zero-copy C++ serialization & reflection library; Felix Gündling (2018). |
| ⚙️ cmdline.cxx | A Command Line Parser; Hideyuki Tanaka (2009). |
| ⚙️ cpp-httplib.cxx | A C++ header-only HTTP/HTTPS server and client library; yhirose (2012). |
| ⚙️ cpp-mmaplib.cxx | A single file C++11 header-only memory mapped file library; yhirose (2016). |
| ⚙️ cpp-peglib.cxx | A single file C++ header-only PEG (Parsing Expression Grammars) library; yhirose (2015). |
| ⚙️ cpp-unicodelib.cxx | A C++17 header-only Unicode library. (Unicode 16.0.0); yhirose (2016). |
| ⚙️ debug-draw.cxx | Immediate-mode, renderer agnostic, lightweight debug drawing API; Guilherme Lampert (2015). |
| ⚙️ doctest.cxx | The fastest feature-rich C++11/14/17/20/23 single-header testing framework; Viktor Kirilov (2016). |
| ⚙️ flags.cxx | ⛳ Simple, extensible, header-only C++17 argument parser released into the public domain; sailormoon (2016). |
| ⚙️ ggformat.cxx | A string formatting library for C++; Michael Savage (2017). |
| ⚙️ hippomocks.cxx | Single-header mocking framework; Peter Bindels (2008). |
| ⚙️ imgui.cxx | Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies; Omar (2014). |
| ⚙️ immediate2d.cxx | A C++ drawing framework for Windows that makes simple graphics programming as fun and easy as the days when computers booted directly to a BASIC prompt; Nicholas Piegdon (2017). |
| ⚙️ inja.cxx | A Template Engine for Modern C++; Berscheid (2017). |
| ⚙️ jargsparser.cxx | A head-only arguments parser(argsparser) c++11 lib; Zhengqiao Wang (2022). |
| ⚙️ json.cxx | JSON for Modern C++; Niels Lohmann (2013). |
| ⚙️ linalg.cxx | linalg.h is a single header, public domain, short vector math library for C++; Sterling Orsten (2016). |
| ⚙️ lurlparser.cxx | Lightweight URL & URI parser (RFC 1738, RFC 3986); Sergey Kosarevsky (2015). |
| ⚙️ micropather.cxx | MicroPather is a path finder and A* solver (astar or a-star) written in platform independent C++ that can be easily integrated into existing code. MicroPather focuses on being a path finding engine for video games but is a generic A* solver; Lee Thomason (2012). |
| ⚙️ microprofile.cxx | microprofile is an embeddable profiler; Jonas Meyer (2013). |
| ⚙️ mini-yaml.cxx | Single header YAML 1.0 C++11 serializer/deserializer; Jimmie Bergmann (2018). |
| ⚙️ obfuscate.cxx | Guaranteed compile-time string literal obfuscation header-only library for C++14; Adam Yaxley (2017). |
| ⚙️ parg.cxx | A header only c++ library for parsing command line arguments and generating usage/help output; Brett Robinson (2018). |
| ⚙️ programoptions.cxx | Single-header program options parsing library for C++11; Fytch (2017). |
| ⚙️ pugixml.cxx | Light-weight, simple and fast XML parser for C++ with XPath support; Arseny Kapoulkine (2006). |
| ⚙️ random.cxx | Random for modern C++ with convenient API; Illia (2017). |
| ⚙️ rang.cxx | A Minimal, Header only Modern c++ library for terminal goodies; Abhinav Gauniyal (2016). |
| ⚙️ simple-svg.cxx | Easy to use SVG library for C++ (fork of legacy Google code project archive); Adi Shavit (2015). |
| ⚙️ str_view.cxx | Null-termination-aware string-view class for C++; Adam Sawicki (2018). |
| ⚙️ str.cxx | Lightweight C++ string type with a configurable local buffer; Omar (2015). |
| ⚙️ swarmz.cxx | A free, header-only C++ swarming (flocking) library for real-time applications; Michael (2016). |
| ⚙️ tinyformat.cxx | Minimal, type safe printf replacement library for C++; Claire Foster (2011). |
| ⚙️ tinyobjloader.cxx | Tiny but powerful single file wavefront obj loader; tinyobjloader (2012). |
| ⚙️ tinyply.cxx | 🌍 C++11 ply 3d mesh format importer & exporter; Dimitri Diakopoulos (2015). |
| ⚙️ tinythread.cxx | Cross-platform implementation of the C++11 Threads API; Marcus Geelnard (2010). |
| ⚙️ tinyxml2.cxx | TinyXML2 is a simple, small, efficient, C++ XML parser that can be easily integrated into other programs; Lee Thomason (2011). |
| ⚙️ tomlplusplus.cxx | Header-only TOML config file parser and serializer for C++17; Mark Gillard (2020). |
| ⚙️ trompeloeil.cxx | Header only C++14 mocking framework; Björn Fahller (2014). |
| ⚙️ unformat.cxx | Fastest type-safe parsing library in the world for C++14 or C++17 (up to 300x faster than std::regex); Adam Yaxley (2017). |
| ⚙️ utl.cxx | Collection of self-contained header-only libraries for C++17; DmitriBogdanov (2023). |
| ⚙️ visit_struct.cxx | A miniature library for struct-field reflection in C++; Chris Beck (2016). |
| ⚙️ vulkanmemoryallocator.cxx | Easy to integrate Vulkan memory allocation library; GPUOpen Libraries & SDKs (2017). |
| ⚙️ xatlas.cxx | Mesh parameterization / UV unwrapping library; Jonathan Young (2016). |
Source: r-lyeh/single_file_libs
During my research work (2021-23), I develop a CLI for nvGraph - a GPU-based graph analytics library by NVIDIA, using CUDA; and a CLI for SNAP dataset - a collection of more than 50 large networks. To minimize manual work, I write scripts to Shorten author, editor, journal, and booktitle in a BibTeX file, another to Get publications list from DBLP as a table in LaTeX or in BibTeX for references, one to Make a gist secret by creating a new secret gist, and deleting the old one, and another to Sync a file to a Git repository (such as GitHub Gist) periodically in Node.js. For a short-term course on Distributed Systems, I design of a simple UDP/datagram based NTP-like client and server using Node.js to simulate the effect of transmission delays in a local, intra-continental, and inter-continental network. In 2015-16, I design a few Windows applications. These include a Countdown timer for Windows, a tool to Calculate an 8-bit hash of a given string using XOR+ROR method, another to Terminate unnecessary/unused processes in Windows, and one to Determine the IP address of a Website from its URL. I also write an Intel 4004 assembler in Node.js that converts a plain assembly language file to binary. While working at Verizon Hyderabad with Prashant Pathak, we develop a Wireless RFID-based Snacks Ticketing System using a Raspberry Pi with a Weigand based HID reader.
I also write and maintain a diverse range of Open source packages for Node.js. These include tools to Tunnel web server from private IP, perform automated trades with a Javascript interface for FYERS API, get Insightful quotes on a topic, and get SPDX License text. In 2018-19, I note the release of Google's new WaveNet based Text-To-Speech (TTS) engine. I use this opportunity to write a tool that Crawls Wikipedia pages and uploads TTS to YouTube. These videos are available upon searching "wikipedia audio article". To support this, I write tools to get GCP/AWS config, use long text with Google TTS/Amazon Polly through a Common tool, Interface with FFMPEG, Generate still video from an audio and image file, Modify Ian Bishop's YouTube Uploader to handle captions, and Interface with the modified YouTube uploader from Node.js.
In 2017-18, I use full-text search in PostgreSQL to build a hand-crafted Natural Language Query System for Indian Food Composition Tables 2017 (IFCT2017). IFCT2017 is published by T. Longvah, R. Ananthan, K. Bhaskarachary, and K. Venkaiah from National Institute of Nutrition (NIN). It contains detailed nutrient composition of 528 key foods in India. I use a PDF to Excel converter to read data in tables of each page, merge them together, fix conversion issues through manual checking, and convert it to CSV. Further, I adjust the units used for each nutrient to grams, and add additional relevant high-level columns. Finally I write a Node.js package to get Programmatic access to this Compositions data. Data from a number of additional tables, including the compositions data, is available in the Main package. To support natural language queries, I convert the English language query to an informal SQL first, perform Named Entity Recognition (NER) with Promised Map interface for Table in PostgreSQL, and then convert Informal SQL SELECT to formal SQL. Testing required constant resetting and provisioning of new databases. For this, I write a script to Manage Addon Pool of an App in Heroku. I also prepare CLI tools to convert E numbers and INS numbers of food additives to their respective full names.
I also maintain collections of functions for in-built types in Node.js, such as, Arrays, Sets, Maps, Objects, Iterables, Entries, Lists, IEntries, ILists, Sorted Arrays, Array Views, Booleans, Bits, Integers, Numbers, Strings, BigInts, Functions, and Async Functions. In addition, I extend in-built modules, such as, File System (FS), Child Process, Path, and Math. To support the automated building, testing, and documentation generation, I write and use a special Build tool - this requires utilities for processing JavaScript, JSDoc, and Markdown text. Building documentation for some packages requires the use of a Custom TypeDoc theme. To generate ASCII videos of examples automatically, an Asciinema-based tool can be used. To delete old/unused packages automatically, I write a tool to Delete NPM packages in an organization using Puppeteer. I originally conceived of maintaining Open source code as a potential business venture - which allows me to make passive money through donations. However, the market was already bustling with utility packages. Despite meticulous documentation and detailed list of functions, differentiation proved elusive.
