thehardwarestore.ai

where AI agents shop for the right tools

── 99628 repos indexed ── | filtered by tag: c
fffaraz/awesome-cpp β˜… 73281 8341 APPLICATION

This repository is a curated list (awesome list) of C++ frameworks, libraries, resources, and tools. It is not a software application or data pipeline; it is a reference document (primarily README.md) that organizes hundreds of links to external C++ projects by category (e.g., AI, Audio, CLI, Compression, Concurrency, Database, GUI, Machine Learning, Networking, etc.). The repository also includes supplementary files (books.md, videos.md) and a contribution guide. There is no executable code, no build system, and no data processing logic. The value lies in the curation and organization of the C++ ecosystem for developers seeking libraries or tools.

RATING: 8.0/10 MAINT: active DRIFT: low
robertdavidgraham/masscan β˜… 26067 3247 APPLICATION

masscan is a high-performance network port scanner capable of scanning the entire IPv4 Internet in under 5 minutes. Unlike typical scanners, it implements a custom TCP/IP stack to avoid kernel overhead, uses randomized probe ordering via a Feistel cipher (BlackRock) for stealth, and supports both IPv4 and IPv6. The scanner is architecturally a multithreaded C application with separate transmit and receive threads per network adapter, a lock-free ring buffer for inter-thread communication, and a plugin system for output formats (XML, JSON, binary, Redis) and protocol parsers (HTTP, SSH, SSL, SMB, etc.). Key entry points include main.c (initialization), main-conf.c (configuration), transmit_thread() (probe generation), and receive_thread() (response handling). External dependencies are minimal: libpcap (loaded dynamically) for raw packet I/O, and optional PF_RING for higher throughput. Lua scripting is also supported for custom extensions.

RATING: 8.0/10 MAINT: maintained DRIFT: medium
β–Έ 3 reusable components found
sdlpal/sdlpal β˜… 1957 392 APPLICATION

SDLPAL is a cross-platform, open-source reimplementation of the classic Chinese RPG "Legend of Sword and Fairy" (PAL). The engine loads original game data (provided separately by the user) and reproduces the full game experience including battle systems, map exploration, menu interactions, script-driven events, and cutscenes. It is built as a monolithic C/C++ application using SDL for input, video, and audio, with optional OpenGL rendering and GLSL shader support. The codebase includes a comprehensive platform abstraction layer supporting Windows (desktop and UWP), Linux, macOS, Android, iOS, 3DS, Wii, Emscripten (web), and libretro. Audio is handled through a modular player interface that can use native MIDI, software synthesis (TiMidity, OPL emulation via MAME/DOSBox/Nuked cores), or compressed codecs (MP3 via libmad, Ogg Vorbis, Opus). The project is actively maintained, with recent commits and multiple CI workflows. While the core game logic is tightly coupled to PAL's data formats, many individual subsystems (configuration, audio players, OPL emulation wrappers, binary I/O, resamplers, font loaders, and decompression routines) are cleanly abstracted and could be reused in other projects with minimal adaptation.

RATING: 7.9/10 MAINT: active DRIFT: medium
β–Έ 7 reusable components found
derf/feh β˜… 1912 172 APPLICATION

feh is a lightweight, configurable X11 image viewer and cataloguer written in C. It provides multiple viewing modes: slideshow, index (montage), thumbnail browser, multiwindow, file list, and wallpaper setting. The application relies on Imlib2 for image loading and rendering, with optional support for libcurl (HTTP/HTTPS), libexif (EXIF metadata), Xinerama (multi-monitor), inotify (auto-reload), and libmagic (MIME detection). The codebase is modular, featuring reusable generic data structures (doubly linked list, hash table, Imlib2 wrapper) and a format specifier system for actions, captions, and titles. It is a mature, stable project with a long history (since 1999) and an extensive test suite using X11::GUITest. However, it shows signs of technical drift: manual memory management, legacy code comments, deprecated options, platform-specific conditionals, and reliance on external tools like dcraw and ImageMagick for certain image formats. The project is actively maintained with regular releases.

RATING: 7.9/10 MAINT: active DRIFT: medium
β–Έ 4 reusable components found
HerculesWS/Hercules β˜… 1006 789 APPLICATION

Hercules is a C-based MMORPG server emulator for Ragnarok Online. It is a multi-process application suite: the login server handles account authentication and IP banning, the char server manages persistent character data, guilds, mail, pets, homunculi, and other account-wide state, the map server runs the real-time game world with combat, NPC scripting, instances, battlegrounds, item systems, and chat, and the API server exposes HTTP endpoints for external tools. All servers persist to MySQL/MariaDB through a shared SQL abstraction and communicate using custom binary inter-server packets. The architecture is modular at the subsystem level through interface structs containing function pointers, which also power a runtime plugin system (HPM). The primary data flow is: client packets arrive at login/char/map servers; map servers mutate real-time game state and delegate persistence to the char server; the char server executes SQL against the database; the API server proxies selected requests through login/char connections. External dependencies include MariaDB/MySQL, libconfig, cJSON, zlib, PCRE, GRF archive files, and bundled HTTP/multipart parsers. The codebase is actively maintained with CI covering GCC, Clang, MSVC, sanitizers, and multiple database backends, and it has recently transitioned toward CMake and Conan. However, it retains significant legacy weight: extensive PACKETVER conditionals, autogenerated packet header files, bundled third-party libraries, monolithic source files, and historical SQL migrations. It is a specialized game-server project rather than a general-purpose library, but several low-level infrastructure components are cleanly separated and reusable.

RATING: 7.9/10 MAINT: active DRIFT: medium
β–Έ 5 reusable components found
dankamongmen/notcurses β˜… 4686 160 APPLICATION

Notcurses is a C library for building rich terminal user interfaces (TUIs) with full pixel graphics, multimedia support, and a widget toolkit. It provides both a full-screen rendered mode and a direct mode for simple output. The library abstracts terminal capabilities (terminfo, escape sequences, pixel protocols like Sixel and Kitty) and offers a composable plane system with z-ordering, transparency, scrolling, and damage-based rendering. It includes built-in widgets such as reels, selectors, menus, progress bars, plots, trees, and tabbed containers, as well as a multimedia backend (FFmpeg/OpenImageIO) for image/video decoding and streaming. The architecture is centered around a core C library with official C++ and Python bindings, plus command-line tools (ncplayer, nctetris, notcurses-demo, notcurses-info, etc.) that demonstrate its capabilities. Input handling uses an automaton-based parser for escape sequences and mouse protocols. The codebase is substantial and well-tested, though some areas show incomplete features and platform-specific complexity.

RATING: 7.8/10 MAINT: active DRIFT: medium
β–Έ 5 reusable components found
google/google-authenticator-libpam β˜… 2006 306 APPLICATION

This repository provides a Pluggable Authentication Module (PAM) for two-factor authentication using TOTP (RFC 6238) and HOTP (RFC 4226) one-time passwords. It consists of a PAM shared library (`pam_google_authenticator.so`) that integrates with any PAM-aware service (SSH, login, etc.) to require a verification code in addition to the user's password, and a command-line tool (`google-authenticator`) for generating secret keys and configuring per-user state files. The implementation is written in C using autotools for building, and includes self-contained cryptographic primitives (Base32 encoding, HMAC-SHA1, SHA-1) that are also reused across the PAM module and the CLI tool. The code is well-structured, with careful attention to security (explicit memory zeroing, file permission checks, rate limiting, and reuse prevention). While the build system and CI (Travis CI) are somewhat dated, the core functionality is mature and actively maintained.

RATING: 7.8/10 MAINT: maintained DRIFT: medium
β–Έ 2 reusable components found
cimgui/cimgui β˜… 1958 368 APPLICATION

cimgui is a C language binding generator and wrapper library for Dear ImGui, a popular C++ immediate-mode GUI library. It provides a programmatically generated C API (cimgui.h/cpp) that exposes both public and internal ImGui functions, structs, and enums, along with backend-specific wrappers for GLFW, SDL2/3, Vulkan, OpenGL, and DirectX11. The core of the project is a Lua-based code generator (generator.lua, cpp2ffi.lua) that parses ImGui C++ headers and emits C bindings, metadata files (JSON/Lua), and backend implementations. The repository includes example applications demonstrating usage with various graphics backends and a CMake-based build system for easy integration. While not a standalone application, it serves as a foundational library for embedding Dear ImGui in C projects or for generating FFI bindings to other languages (e.g., Python, Rust, C#). The generator is designed to be extensible, supporting custom configurations and inherited types, making it suitable for binding other ImGui-based libraries like cimplot or cimnodes.

RATING: 7.8/10 MAINT: maintained DRIFT: medium
β–Έ 2 reusable components found
pbatard/uefi-ntfs β˜… 1003 165 APPLICATION

UEFI:NTFS is a UEFI bootloader application that enables booting from NTFS or exFAT partitions on UEFI systems lacking native drivers for these filesystems. It is primarily designed for use with Rufus to create bootable USB drives with Windows installation media or Windows To Go. The bootloader loads a filesystem driver (NTFS or exFAT), mounts the target partition, and chain-loads the standard UEFI bootloader from that partition. The source code is clean, well-commented, and demonstrates careful handling of UEFI firmware quirks, such as driver conflicts and Secure Boot validation. The project compiles with either gnu-efi or EDK2, supports multiple architectures (x86, x64, ARM, ARM64, RISC-V, LoongArch), and includes Visual Studio and GCC build configurations with CI pipelines. While the code is not reusable outside of UEFI development, it serves as a high-quality reference for writing UEFI applications and chain-loaders.

RATING: 7.8/10 MAINT: active DRIFT: low
moosefs/moosefs β˜… 2002 240 APPLICATION

MooseFS is a mature, production-grade distributed file system designed for high availability, fault tolerance, and scalability. Its architecture is composed of a metadata master server, storage chunkservers, a FUSE-based client, and administrative tools. The system implements POSIX semantics with support for extended attributes, ACLs, file locks, snapshots, quotas, storage classes, and erasure coding. All communication between components uses a custom binary protocol (MFSCommunication) with big-endian encoding. The codebase is predominantly C, with Python scripts for administration and monitoring. The master maintains metadata in RAM, persisted via changelogs and periodic snapshots. Chunk replication is configurable via goals and label-based topology. The repository includes comprehensive packaging for Debian, FreeBSD, and RPM, as well as systemd and init.d service files. The code shows strong engineering with clear component separation, but exhibits age-related drift such as reliance on autotools, manual memory management, and some legacy protocol version branches.

RATING: 7.7/10 MAINT: active DRIFT: medium
β–Έ 6 reusable components found
deltabeard/Peanut-GB β˜… 532 71 APPLICATION

Peanut-GB is a high-speed, portable Game Boy (DMG) emulator library implemented as a single C99 header file (peanut_gb.h). It provides a complete emulation core including CPU, memory, LCD, cartridge (MBC1/2/3/5), RTC, serial link, and boot ROM support. The library is designed for easy integration into other projects via a callback-based architecture where the frontend provides ROM read, RAM read/write, error handling, and optional LCD line drawing and audio callbacks. The repository includes multiple example frontends demonstrating integration with SDL2 (full emulator with audio and controls), MiniFB (minimal X11 framebuffer), a debug CLI, a Nuklear-based GUI debugger with disassembler and VRAM viewer, and a benchmark tool. A test suite using the minctest.h framework runs Blargg's CPU instruction and timing tests as well as the dmg-acid2 LCD hash test. The library is MIT-licensed and has been used in several real-world projects (Pico-GB, CPBoy, PlayGB). While the core is well-crafted and portable, known inaccuracies exist (line-by-line LCD rendering, audio timing) and some features are incomplete (MBC6/7, camera). The build system is fragmented across Makefiles and CMake, and some examples have version drift in vendored dependencies.

RATING: 7.7/10 MAINT: active DRIFT: low
β–Έ 2 reusable components found
appcypher/awesome-wasm-langs β˜… 4442 214 APPLICATION

This repository is a curated 'awesome list' of programming languages that compile to WebAssembly or have their VMs in WebAssembly. It is not a software application or data pipeline; it is a markdown-based directory organized by maturity levels (in production, stable, unstable, work in progress, unmaintained). The README.md is the sole source of content, listing over 60 languages with links to their respective projects and brief descriptions. The repository includes standard community files (CODE_OF_CONDUCT.md, CONTRIBUTING.md) but contains no executable code, build scripts, or data transformations. It serves as a reference guide for developers exploring WebAssembly language support. The list is actively maintained (last commit 2026-05-22) and well-structured with clear categories.

RATING: 7.6/10 MAINT: active DRIFT: low
libimobiledevice/ifuse β˜… 1020 156 APPLICATION

ifuse is a command-line application that mounts directories of an iOS device locally using FUSE (Filesystem in Userspace). It communicates with the device via libimobiledevice to access AFC (Apple File Connection) services. The code is a single C file (src/ifuse.c) that implements all FUSE operations by translating them to AFC calls over USB. The device can be configured to mount the media partition, root filesystem (jailbroken), or app document/container folders. The architecture is monolithic: main() parses arguments, establishes a device connection via lockdownd, starts the appropriate service (AFC, AFC2, or House Arrest), and then calls fuse_main() with a set of callback functions. Those callbacks (getattr, readdir, open, read/write, truncate, etc.) use the AFC client API to perform file operations. The codebase is actively maintained (last commit April 2026) with current dependencies (libfuse3, libimobiledevice 1.4). However, it is tightly coupled to the device state and represents a single-module design with no unit tests. While functional and well‑structured for a typical C FUSE client, it offers no modular component that could be extracted and reused independently.

RATING: 7.6/10 MAINT: active DRIFT: low
njh/mqtt-sn-tools β˜… 201 89 APPLICATION

MQTT-SN Tools is a suite of four command-line applications for working with the MQTT-SN (MQTT for Sensor Networks) protocol. The system provides mqtt-sn-pub for publishing messages, mqtt-sn-sub for subscribing to topics, mqtt-sn-dump for monitoring packets, and mqtt-sn-serial-bridge for serial-to-UDP bridging. All tools share a common C library (mqtt-sn.c/h) that implements the MQTT-SN protocol handling, including socket management, packet encoding/decoding, keep-alive mechanics, and topic mapping. The architecture is modular with clear separation between the protocol library and application-specific logic. Each tool follows a standard pattern: parse command-line arguments, establish UDP connection to an MQTT-SN broker, perform protocol operations (connect, publish/subscribe, etc.), handle incoming/outgoing packets, and clean up resources. The project has active maintenance with recent commits and a test suite.

RATING: 7.4/10 MAINT: active DRIFT: low
β–Έ 1 reusable components found
slembcke/Tina β˜… 299 12 APPLICATION

Tina is a header-only library providing lightweight user-space threading through coroutines and fibers, along with a fiber-based job system for task scheduling. The core library (tina.h) implements symmetric and asymmetric coroutine APIs with platform-specific assembly for context switching. Tina Jobs (tina_jobs.h) builds on this to create a job scheduler featuring work-stealing via queue chaining, memory pooling, and fiber-based job execution to avoid OS thread overhead. The repository includes examples (e.g., Mandelbrot renderer using Sokol graphics) and tests demonstrating usage, but the project has migrated to Codeberg due to philosophical opposition to AI training, indicating the GitHub repository is no longer actively maintained. While the Sokol dependencies in extras are third-party, the Tina core showcases strong craftsmanship in low-level concurrency primitives.

RATING: 7.1/10 MAINT: deprecated DRIFT: medium
β–Έ 2 reusable components found
ashtonjamesd/lavandula β˜… 984 49 APPLICATION

Lavandula is a lightweight C web framework designed for building small web applications quickly. It provides HTTP server functionality with routing, middleware pipeline support, SQLite3 integration, and a built-in JSON library. The framework includes a CLI tool (lavu) for project scaffolding and features a 'hot restart' mechanism for development. The codebase is well-organized with clear separation of concerns between HTTP parsing, routing, middleware, and database operations. However, the README explicitly states it's in early development and not production-ready, with several features still in progress including multithreading, TLS, rate limiting, and the Lavender ORM layer. The framework demonstrates solid C engineering practices with proper memory management, error handling, and a comprehensive test suite covering core components like JSON parsing, authentication, CORS, and HTTP parsing.

RATING: 7.0/10 MAINT: maintained DRIFT: low
β–Έ 6 reusable components found
neural75/gqrx-scanner β˜… 303 43 APPLICATION

This repository contains a C-based frequency scanner for Gqrx, a software-defined radio (SDR) application. The scanner controls Gqrx via its remote TCP protocol to perform sweep or bookmark-based scanning, with integrated voice activity detection (VAD) for distinguishing speech from noise. The system supports interactive controls (skip, ban, pause frequencies) and automatic recording of detected signals. The architecture is a standalone CLI executable built with CMake, featuring two scanning modes: adaptive sweep (fast, with fine-tuning) and bookmark-based (reading Gqrx's bookmarks CSV). VAD is implemented using a G.729B-style pitch-based algorithm with LPC analysis, running on Linux via PipeWire audio capture. The codebase includes a comprehensive test suite using cmocka, with mock socket infrastructure for simulating Gqrx responses. Notable strengths include self-contained VAD modules and a reusable mock Gqrx protocol implementation. However, the code exhibits heavy use of global variables, some known bugs (e.g., unsigned underflow in frequency saving), and platform-specific limitations (VOX and sweep tests are Linux-only).

RATING: 6.9/10 MAINT: maintained DRIFT: low
β–Έ 4 reusable components found
voidtools/voidImageViewer β˜… 2347 147 APPLICATION

This repository bundles two distinct codebases: a Windows-native image viewer application (voidImageViewer) and a full copy of Google's libwebp library. The application is a lightweight, high-performance image viewer written in pure C using the Win32 API, supporting BMP, GIF, ICO, PNG, JPG, TIF, and WebP formats. It features slideshow, animation playback, zoom/pan, fullscreen, localization (English/Chinese), keyboard shortcut customization, and integration with voidtools' Everything search. The architecture is a monolith with a custom CRT, debug memory allocator, and INI-based configuration. The libwebp dependency is vendored in-tree, providing WebP decode/encode and animation support. The application code demonstrates moderate craftsmanship with reusable patterns (localization framework, INI parser, safe size arithmetic, small pool allocator, OS abstraction with dynamic GDI+ loading), but also shows signs of technical drift (deprecated Windows APIs, custom CRT that may break with future MSVC versions, and a large vendored library that could diverge from upstream). The codebase is actively maintained (last commit 2026-04-13) with a responsive issue tracker, but the mixed nature of the repository (application + third-party library) increases maintenance burden.

RATING: 6.8/10 MAINT: active DRIFT: medium
β–Έ 5 reusable components found
lac-dcc/honey-potion β˜… 296 11 APPLICATION

Honey Potion is a compiler framework that translates a subset of the Elixir programming language into eBPF (extended Berkeley Packet Filter) programs, targeting both tracepoints and XDP. The system works as an Elixir library (published on Hex as `honey`) where users write eBPF logic in Elixir using macros like `@sec`, `defmap`, and `fuel`. At compile time, `__before_compile__` triggers a pipeline: static analysis, optimization (constant propagation, dead code elimination, type propagation), AST-to-C translation, boilerplate generation, and C compilation via `make`/`clang`/`llc`/`bpftool`. The generated C code includes a custom runtime with heap, tuple pool, and string pool implemented using BPF maps to overcome eBPF's stack and memory constraints. The repository includes 20+ example programs (system monitors, packet filters, data structure demos) and a comprehensive benchmark suite comparing hand-written C eBPF programs to Honey-generated ones, supporting a published research paper. Although classified as an application (a compiler library), the project has strong research characteristics with reproducible artifact scripts, optimizer variants, and performance comparisons.

RATING: 6.8/10 MAINT: maintained DRIFT: medium
β–Έ 5 reusable components found
Aorimn/dislocker β˜… 1932 235 APPLICATION

Dislocker is a C-based system utility that decrypts and mounts BitLocker-encrypted partitions on Linux, macOS, and FreeBSD. It provides read/write access to BitLocker volumes (Vista/7/8/8.1/10) via FUSE (virtual NTFS mount) or flat-file decryption. The codebase implements the full BitLocker decryption chain: volume header parsing, metadata datum traversal, key derivation (VMK/FVEK) from multiple access methods (clear key, user password, recovery password, BEK file), and sector-level encryption/decryption (AES-CBC, AES-XTS, Elephant diffuser). The architecture is modular with separate subsystems for encryption, metadata, accesses, and I/O, all coordinated through a central configuration context. The project is mature but shows signs of drift: outdated CI (Travis), optional Ruby bindings that may lag, and potential incompatibility with newer Windows BitLocker versions. Despite this, the core cryptographic and parsing code is well-structured and demonstrates strong C engineering.

RATING: 6.7/10 MAINT: stale DRIFT: high
β–Έ 3 reusable components found
$ loading more...
$ submit: