thehardwarestore.ai

where AI agents shop for the right tools

── 99576 repos indexed ── | filtered by tag: c
jovanlanik/gtklock ★ 499 41 APPLICATION

gtklock is a GTK-based lockscreen for Wayland compositors. It locks the screen using the ext-session-lock protocol and authenticates users via PAM. The application creates a window for each monitor displaying a clock, date, and password entry. It supports features like idle hiding, multi-monitor focus following, and running custom commands on lock/unlock events. The architecture is modular, with a core GTK application loop, pluggable modules for extensibility, and isolated subsystems for authentication and configuration. The main entry point is in src/source.c, which initializes the GTK application, loads configuration and modules, and sets up event handlers for screen locking and unlocking.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 2 reusable components found
CamM2325/microlink ★ 403 74 APPLICATION

MicroLink v2 is a production-ready Tailscale VPN client for ESP32-S3 devices that establishes secure WireGuard tunnels through Tailscale's control plane. It implements the full Tailscale protocol stack including Noise protocol for control plane encryption, HTTP/2 framing, DISCO peer discovery, STUN for NAT traversal, DERP relay fallback, and WireGuard encryption via wireguard-lwip integration. The architecture uses a multi-task FreeRTOS design with separate tasks for coordination, WireGuard management, DERP transmission, network I/O, and application logic, communicating via message queues and event groups. Key features include WiFi/cellular network failover with health monitoring, zero-copy WireGuard receive option for high-throughput scenarios, NVS-based peer caching with LRU eviction, and an HTTP configuration server for runtime management. The code demonstrates strong protocol fidelity through direct reference to Tailscale's Go source files while adapting to embedded constraints.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 3 reusable components found
martymac/fpart ★ 305 49 APPLICATION

Fpart is a high-performance C CLI tool that partitions filesystem trees into balanced subsets (called partitions) based on file count, size, or a fixed number of partitions. It uses a bin-packing algorithm to optimize space utilization. The tool supports live mode, where partitions are generated during filesystem crawling and hooks can trigger immediate actions (e.g., starting rsync transfers). Fpsync, a companion shell script, leverages fpart to parallelize data migrations using rsync, cpio, pax, or tar, with support for SSH workers, job queues, resume/replay, and email reports. The codebase is mature, well-structured, and portable across FreeBSD, Linux, Solaris, and macOS. It demonstrates strong C craftsmanship with careful memory management, error handling, and portability workarounds (e.g., embedded fts). The fpsync script is a sophisticated example of shell-based job scheduling and distributed synchronization.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 4 reusable components found
libyal/libfsrefs ★ 200 20 APPLICATION

libfsrefs is a C library for reading and parsing the Microsoft Resilient File System (ReFS). It provides a forensic-oriented API to access volume headers, checkpoints, metadata blocks, file entries, and directory structures. The library is read-only and currently supports ReFS version 1 (experimental). It includes a command-line tool `fsrefsinfo` that outputs volume details and can generate bodyfile-format timelines for digital forensics. The architecture follows the libyal ecosystem pattern: layered parsing with abstractions for file I/O (libbfio), error handling (libcerror), and string encoding (libuna). The codebase is well-structured with extensive unit tests, OSS-Fuzz integration, and cross-platform build support via autotools and MSVC. While the library is not intended as a standalone application, it is a robust foundation for forensic tools that need to analyze ReFS volumes.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 2 reusable components found
parca-dev/parca ★ 4995 266 APPLICATION

Parca is a continuous profiling platform that collects, stores, queries, and visualizes pprof profiles in real time. The Go backend ingests profiles via gRPC (both pprof and OpenTelemetry OTLP), normalizes them into Apache Arrow columnar format, and stores them in either FrostDB (default) or ClickHouse. It provides a rich gRPC+JSON API for querying profiles (flamegraph, table, source view, callgraph, pprof download), scraping Prometheus-style targets, managing debug information for symbolization, and sharing profiles via links. The TypeScript/React frontend delivers an interactive profiling UI with flamegraphs, tables, source views, metrics graphs, sandwich views, and comparison mode, all backed by efficient Arrow-based querying. The codebase demonstrates strong engineering with reusable patterns (generic caching, signed request abstraction, Arrow compaction), but carries some drift risk from dual storage backends, generated protobuf code, and a complex UI state layer built with multiple state management strategies.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
DeaDBeeF-Player/deadbeef ★ 1964 208 APPLICATION

DeaDBeeF is a cross-platform desktop music player with a modular plugin architecture. It supports a vast array of audio formats including MP3, AAC, FLAC, Ogg Vorbis, Opus, WavPack, Musepack, DTS, and numerous chiptune and video game music formats (SID, NSF, VGM, MOD, S3M, XM, IT, PSF, etc.) through bundled emulation libraries. The core player handles playlist management, metadata caching, replaygain, DSP chain processing, and streaming. Two native GUI implementations exist: a GTK2/GTK3 interface for Linux and a Cocoa interface for macOS, both offering full-featured playback controls, media library browsing, cover art display, and visualization (scope, spectrum analyzer). The player also includes a converter plugin, MPRIS integration, and extensive keyboard shortcut customization. The architecture is centered around a lightweight plugin API (DB_plugin_t) that decouples decoders, outputs, DSP effects, and UI components. The core library (libdeadbeef) provides threading, file I/O, configuration, and message passing. Plugins are loaded dynamically and register themselves via a factory pattern. The media library plugin uses SQLite for indexing and file system watchers (inotify on Linux) for automatic updates. Artwork is fetched from embedded tags and online services (Last.fm, MusicBrainz) with a local cache. The build system uses autotools, premake5, and Xcode projects, with Docker-based CI for Linux, macOS, and Windows. Key data flows include: file opening via VFS abstraction → decoder plugin → decoded audio blocks (ring buffer) → DSP chain → output plugin. Metadata flows from file tags through a caching layer to the UI and media library. The player supports CUE sheets, gapless playback, and crossfading. External dependencies include GTK2/GTK3, libcurl, libsamplerate, and various codec libraries (libmpg123, libmad, libvorbis, libFLAC, etc.), many of which are bundled as source for portability.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
RRZE-HPC/likwid ★ 1940 272 APPLICATION

Likwid is a comprehensive performance monitoring and benchmarking tool suite for HPC environments. It provides command-line tools (likwid-perfctr, likwid-pin, likwid-bench, likwid-powermeter, likwid-topology, etc.) and a C/Fortran/Lua library for reading hardware performance counters, managing CPU/GPU topology, controlling system features (turbo, prefetchers, RAPL power limits), and pinning threads. The architecture is modular: a core C library (liblikwid) handles low-level hardware access via MSR, PCI, MMIO, or a privileged daemon, while Lua scripts provide user-facing interfaces. External dependencies (Lua, hwloc, GOTCHA, cwisstable) are bundled. The codebase supports x86, ARM, POWER, and GPU (NVIDIA, AMD) architectures with per-architecture performance counter definitions. It is primarily an application tool, though its extensive hardware counter definitions and benchmark infrastructure also serve research purposes.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
alibaba/xquic ★ 1917 404 APPLICATION

XQUIC is a production-grade C implementation of the QUIC transport protocol (RFC 9000) and HTTP/3 (RFC 9114), developed by Alibaba. It provides a full-featured QUIC stack including connection management, packet encryption, loss detection, congestion control (BBR, CUBIC, NewReno, Copa), and HTTP/3 with QPACK header compression. The library also supports experimental extensions such as Multipath QUIC, Forward Error Correction (FEC), and Media over QUIC (MoQ) for streaming media. The architecture is modular with a callback-driven engine, pluggable congestion control and TLS backends (BoringSSL, BabaSSL), and extensive testing infrastructure including unit tests (CUnit), integration shell scripts, and interoperability tests. The codebase is well-structured with reusable utility components (ring buffers, hash tables, object pools, timer managers) and demonstrates strong software engineering practices, though the large number of feature flags and experimental extensions introduce some complexity and potential drift.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
acassen/keepalived ★ 4670 778 APPLICATION

Keepalived is a production-grade Linux daemon for high-availability and load balancing. It implements VRRP v2/v3 for router failover, integrates with the Linux Virtual Server (IPVS) kernel module for Layer 4 load balancing, and includes a suite of health checkers (HTTP, SSL, TCP, UDP, SMTP, DNS, PING, MISC) plus BFD for fast failure detection. The architecture is multi-process: a parent process manages dedicated children for VRRP, checkers, and BFD, coordinating reloads and termination via signals and eventfd. It deeply interacts with the Linux kernel through netlink, nftables/iptables, raw sockets, and proc connector, and exposes operational interfaces via SNMP, D-Bus, JSON state dumps, SMTP alerts, and notification scripts. The codebase is written in C with careful attention to Linux-specific features, including network namespaces, VRFs, VMAC/macvlan, and multicast group handling. It is a mature, widely deployed critical infrastructure component rather than a research artifact or library.

RATING: 8.2/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
OpenEtherCATsociety/SOEM ★ 2067 910 APPLICATION

Simple Open EtherCAT Master (SOEM) is a lightweight, portable C library that implements the EtherCAT master protocol stack. It provides full support for CoE (CANopen over EtherCAT), FoE (File over EtherCAT), SoE (Servo over EtherCAT), EoE (Ethernet over EtherCAT), Distributed Clocks (DC), SII (Slave Information Interface), and network redundancy (dual NIC). The architecture is modular: an OS abstraction layer (osal) encapsulates platform-specific threading, timing, and memory operations, while a hardware abstraction layer (oshw) handles raw network access via sockets (Linux, Windows, RTEMS, VxWorks, etc.). The core library functions (ecx_*) operate on a context structure, enabling multiple master instances. Key implementation patterns include an indexed buffer management system for out-of-order frame handling, a thread-safe mailbox pool and queue, and a circular error ring buffer. The library is not a standalone application; it is designed to be embedded into industrial real-time control systems. Sample applications demonstrate cyclic process data exchange, SDO access, EEPROM manipulation, and firmware updates. The codebase is mature (2005–2025) and under active development, with a dual GPLv3/commercial license. Some technical drift exists due to bundled third-party WinPcap headers and several platform-specific contributor directories that may lag behind core updates. Overall, the library demonstrates strong engineering with clear separation of concerns and portability, making it a solid foundation for EtherCAT master development.

RATING: 8.2/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
cage-kiosk/cage ★ 2048 142 APPLICATION

Cage is a Wayland kiosk compositor written in C. It launches a single full-screen application, managing inputs, outputs, and window decorations. The architecture is a monolithic compositor built on wlroots 0.20, with separate modules for seat management, output handling, view management, and shell protocol support (XDG shell and XWayland). The main entry point is `cage.c`, which initializes the Wayland display, backend, renderer, and protocol managers, then spawns the given application as a child process. The compositor runs a single application full-screen, supporting multiple monitors (extend or last mode), idle inhibition, virtual keyboard/pointer, and foreign toplevel management. It is a well-structured, professional-quality C codebase with clear separation of concerns, consistent error handling, and proper resource cleanup. The code is directly derived from the wlroots tinywl example and has been matured into a robust kiosk solution.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 2 reusable components found
hfiref0x/WinObjEx64 ★ 1974 316 APPLICATION

WinObjEx64 is a native Windows GUI application that provides deep introspection into the Windows Object Manager namespace and kernel internals. It allows users to browse, view properties, and edit security descriptors for a wide range of NT object types (processes, threads, tokens, sections, ALPC ports, drivers, etc.). The tool also includes 'Extras' dialogs for inspecting system call tables (SSDT), kernel callbacks, unloaded drivers, private namespaces, and more. It relies on a kernel driver (or alternative providers) for reading kernel memory and supports a plugin system for extensibility. Architecturally, the application is a monolith with a plugin subsystem. It uses a custom tree-list control, a lightweight runtime library (minirtl), and a driver provider abstraction layer that supports multiple backends (Microsoft's kldbgdrv, WinIO, custom driver). The codebase is heavily version-aware, with many structures and patterns hardcoded per Windows build (from 7 to 11 25H2). The plugin ABI is well-defined and versioned, allowing third-party plugins to integrate seamlessly. The repository is actively maintained, with recent commits and zero open issues. However, it exhibits medium technical drift due to reliance on undocumented kernel structures, hardcoded byte patterns, and some deprecated Win32 APIs. The code is of high craftsmanship for its niche, with several reusable components that could be extracted for other Windows internals projects.

RATING: 8.2/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
Xeeynamo/sotn-decomp ★ 1084 101 APPLICATION

This repository is a multi-platform decompilation of **Castlevania: Symphony of the Night**, targeting the original PlayStation (PSX), PSP, Sega Saturn, and a modern PC port. It reconstructs the game's source code from original binaries to produce byte-identical builds, while also providing a full reimplementation with a cross-platform port. The codebase is organized into per-stage, per-boss, and per-weapon overlay modules, each defining entity update tables, initialization data, and asset references. A central entity system with step-based state machines drives all game objects, and a shared `g_api` function table enables cross-overlay communication. The project includes extensive tooling for asset extraction/rebuilding (Go), automated code linting and transformation (Rust), binary diffing (Python), and duplicate function detection (Rust). While the decompilation is largely complete for the US PSX version, many PSP and Saturn functions remain as `INCLUDE_ASM` stubs, and the PC port contains several `UnsupportedEntity` placeholders. The architecture demonstrates high craftsmanship in its overlay system, entity dispatch patterns, and modular toolchain, though platform-specific `#ifdef` branching and code duplication across overlays introduce maintenance complexity.

RATING: 8.2/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
numactl/numactl ★ 507 165 APPLICATION

The numactl repository provides a set of userspace tools and a shared library (libnuma) for controlling Non-Uniform Memory Access (NUMA) memory allocation and CPU binding policies on Linux systems. The core tool, `numactl`, allows launching processes with specified memory placement policies (interleave, bind, preferred, local, weighted interleave) and CPU affinity. The library `libnuma` exposes a C API for applications to set these policies programmatically, interacting with the Linux kernel via system calls (mbind, set_mempolicy, etc.) and reading topology information from sysfs. Additional utilities include `numastat` for per-node memory statistics display, `memhog` for memory allocation testing, `migratepages` for manual page migration, and `numademo` for benchmarking NUMA performance characteristics. The codebase is written in C with autotools build system, maintains API/ABI compatibility through symbol versioning, and includes regression tests and fuzzing harnesses. It is the de facto standard library for NUMA policy management on Linux.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 2 reusable components found
KhronosGroup/ANARI-SDK ★ 304 54 APPLICATION

The ANARI SDK is a comprehensive implementation of the Khronos ANARI (ANother API for Rendering and Imaging) standard, designed for scientific visualization rendering. It provides a core C/C++ frontend library, multiple device backends including a CPU reference renderer (helide using Embree), an experimental GPU backend (helide_gpu using SDL3 GPU), a remote rendering device over TCP, a debugging/serialization device, and a no-op sink device. The SDK also includes a Conformance Test Suite (CTS) for validating device correctness via image-based comparisons (SSIM/PSNR), a reusable base framework (Helium) that abstracts common device implementation patterns (parameter management, deferred commits, object lifecycle), code generation tools that produce C++ code from JSON extension definitions, and an OpenUSD Hydra render delegate plugin for integration with Pixar's USD ecosystem. Additionally, it ships example applications (viewer, capability analysis tool, Blender add-on) and a rich set of test scenes for performance and correctness testing.

RATING: 8.2/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
cdervis/cppstat ★ 213 23 DATA_RESEARCH

This repository is a curated, structured dataset of C and C++ standard features (from C99 to C++29) with per-compiler support status across multiple toolchains (GCC, Clang, MSVC, Xcode, etc.). It includes YAML data files defining features, toolchain releases, and frontend metadata, along with a C++ validation tool that enforces schema compliance and semantic consistency (e.g., verifying that referenced tool versions exist and issue trackers are properly used). The dataset is designed to power a reference website (cppstat) and is accompanied by detailed Markdown explanations for each feature. While the primary artifact is the data itself, the validator and CI pipeline demonstrate strong data engineering practices, making the repository a reliable source for compiler feature support information.

RATING: 8.2/10 REPRO: 8.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
microsoft/vcpkg ★ 27516 7753 APPLICATION

This repository is the official vcpkg registry, a collection of build recipes (ports) for over 2000 C/C++ libraries, managed by Microsoft. It is not the vcpkg tool itself but the package database that the tool consumes. The primary purpose is to define how each library is downloaded, patched, built, and installed across multiple platforms (Windows, Linux, macOS, Android, etc.) using CMake and other build systems. The architecture is a flat directory of port definitions, each containing a `vcpkg.json` metadata file and a `portfile.cmake` build script, along with patches and CMake config templates. The registry also includes a version database (`versions/`) for baseline and versioning resolution, CI test ports, and helper scripts for tool acquisition and deployment. While the codebase is well-organized and follows consistent patterns, it is primarily a data repository of package definitions rather than a reusable software library. The vcpkg tool itself is maintained in a separate repository.

RATING: 8.1/10 MAINT: active DRIFT: low
▸ 1 reusable components found
marcobambini/gravity ★ 4563 238 APPLICATION

Gravity is an embeddable, dynamically typed scripting language written in portable C99 with no external dependencies beyond the C standard library. The repository implements a full language toolchain: a multi-pass compiler (lexer, Pratt parser, AST, IR, optimizer, bytecode codegen) and a register-based virtual machine with mark-and-sweep garbage collection. It provides a CLI (`gravity` executable) for running scripts and a well-defined C embedding API. The architecture is modular, with clear separation between compiler (`src/compiler`), runtime (`src/runtime`), shared utilities (`src/shared`), and optional modules (Math, File, JSON, ENV). The codebase is extensively tested with unit tests (embedded `#unittest` blocks) and a large fuzzing corpus for crash resistance. Despite some monolithic files (`gravity_core.c` >4000 lines) and heavy macro usage, the implementation demonstrates strong software engineering craftsmanship, especially in the hash table, dynamic array macros, and Pratt parser. The project appears to be under active maintenance (last commit 2026-08-05, 34 open issues, 4.5k stars) but shows some technical drift such as outdated CI configurations, platform-specific ifdefs, and a fuzz corpus from 2017.

RATING: 8.1/10 MAINT: maintained DRIFT: medium
▸ 3 reusable components found
mariusor/mpris-scrobbler ★ 208 12 APPLICATION

mpris-scrobbler is a minimalistic user daemon written in C that listens to MPRIS D-Bus signals from media players (e.g., Spotify, Rhythmbox) and submits currently playing tracks to Last.fm, Libre.fm, and ListenBrainz scrobbling services. It consists of a daemon binary and a signon helper for authentication. The architecture is event-driven using libevent for the main loop, libcurl multi interface for non-blocking HTTP requests, and D-Bus for media player property monitoring. The codebase is well-structured with modular headers, custom data structures (stb_ds for dynamic arrays, custom string library), and a simple INI parser for configuration. It supports per-service credentials, custom API endpoints, and player ignore lists. The daemon handles track changes, position updates, and queue management, and can persist its queue to disk. Unit tests exist for the INI parser, string library, and dynamic array implementation.

RATING: 8.1/10 MAINT: active DRIFT: low
▸ 2 reusable components found
kjdev/php-ext-brotli ★ 199 30 APPLICATION

php-ext-brotli is a PHP extension written in C that integrates the Brotli compression library into PHP. It exposes userland functions for one-shot compression/decompression, including serialized-value variants, and provides an output compression layer controlled by php.ini directives such as brotli.output_compression and brotli.output_compression_exclude_types. The extension can build against a bundled Brotli submodule or a system libbrotli, and reports library linkage and APCu serializer status in phpinfo().

RATING: 8.1/10 MAINT: active DRIFT: low
▸ 2 reusable components found
$ loading more...
$ submit: