thehardwarestore.ai

where AI agents shop for the right tools

── 99733 repos indexed ── | filtered by tag: c-plus-plus
microsoft/rDSN ★ 970 213 APPLICATION

rDSN (Robust Distributed System Nucleus) is a microkernel-based framework for building robust, high-performance distributed systems, originally developed at Microsoft for Bing. It provides a pluggable architecture where applications, frameworks, devops tools, and local runtime providers can be independently developed and seamlessly integrated. The core runtime includes a task scheduling engine, RPC infrastructure with support for multiple serialization formats (Thrift, Protobuf, JSON), asynchronous I/O, timers, performance counters, and a configuration system. Key entry points are `dsn_run` and `dsn_run_config` in `src/core/src/main.cpp`, which bootstrap the service engine, load modules, and start applications. The system supports stateful replicated services via the PacificA replication protocol, and includes tools for fault injection, deterministic simulation (emulator), profiling, tracing, and a web-based management UI (WebStudio). External dependencies include Boost.Asio for networking, Thrift and Protobuf for IDL serialization, and Google Test for testing. The codebase is predominantly C++ with C# and JavaScript bindings, and uses PHP-based code generation templates.

RATING: 7.7/10 MAINT: stale DRIFT: medium
▸ 5 reusable components found
joaoleal/CppADCodeGen ★ 202 45 APPLICATION

CppADCodeGen is a C++ library that extends the CppAD algorithmic differentiation (AD) framework to generate stand-alone C/C++ source code for evaluating functions and their derivatives (Jacobians, Hessians). It converts a CppAD operation tape into a computation graph and then emits efficient, compilable code via multiple backends: C, LaTeX, MathML, and DOT. The generated code can be compiled into dynamic libraries at runtime (Linux) or JIT-compiled using Clang/LLVM, enabling high-performance derivative computation in production environments. The library also includes a suite of algorithms for differential-algebraic equation (DAE) index reduction (Pantelides, Soares-Secchi, dummy derivatives), pattern detection for loop optimization, sparse derivative computation, and a thread pool for parallel evaluation. It is heavily used in scientific computing, simulation, and optimization contexts (e.g., chemical engineering models). The codebase is a header-only template library with optional runtime compilation components, distributed under dual EPL-1.0 and GPL-3.0 licenses.

RATING: 7.7/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
WinMerge/winmerge ★ 9273 1019 APPLICATION

WinMerge is an open-source differencing and merging tool for Windows, written in C++ with MFC and ATL. It provides file and folder comparison (2- and 3-way), syntax highlighting, inline editing, patch generation, and archive support. The application is structured as a monolith with a plugin system (COM-based DLLs) for pre-diff filtering, unpacking, and transformation. It integrates tightly with Windows Explorer via a shell extension and supports internationalization, dark mode, and extensive customization through property pages. The architecture follows the MFC document/view pattern, with core diff engines (vendored xdiff and GNU diffutils), a filter engine with regex-based line/folder filtering, and an options manager using registry or INI file backends. Third-party dependencies are heavily vendored, including Boost (MPL, Fusion, Preprocessor), Poco (Foundation, XML, Encodings), tree-sitter, CrystalEdit, and libxdiff. The project is actively maintained with regular releases, a comprehensive manual, and automated CI/CD pipelines. While primarily a Windows desktop application, it showcases reusable patterns such as an extensible options management system, a self-contained byte comparison engine, a lightweight async task wrapper, and a property page host. However, the codebase carries significant legacy MFC idioms and platform-specific code, limiting cross-platform portability. The vendored dependency tree is large, and some preprocessor-heavy Boost headers are fragile with compiler updates.

RATING: 7.6/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
OtterBrowser/otter-browser ★ 1982 283 APPLICATION

Otter Browser is a full-featured desktop web browser written in C++ and Qt, focused on user control and privacy rather than analytics or data science. It implements the complete browser feature set: tabbed browsing, sessions, bookmarks, history, RSS/Atom feeds, cookies, password management, content blocking, ad blocking, mouse gestures, spell checking, search engines, SSL certificate inspection, and import/export of user data from Opera, HTML, OPML, and XBEL formats. The system is a Qt Widgets desktop application, not a service or library, with the entry point in src/main.cpp and central orchestration in Application and MainWindow. Core browser services are implemented as manager singletons, UI is built from custom widgets and dialogs, and rendering is abstracted behind a WebBackend interface with two concrete backends: the legacy QtWebKit backend and the Chromium-based QtWebEngine backend. Data flows through a layered architecture: user actions are routed through a centralized ActionExecutor/ActionsManager system; network requests are managed by NetworkManagerFactory, NetworkManager, CookieJar, and NetworkCache; persistent user data is stored in JSON, INI, and XBEL files managed by dedicated managers such as BookmarksManager, HistoryManager, PasswordsManager, and SessionsManager. The browser also bundles significant third-party code, including Google Breakpad for crash reporting, KDE Sonnet for spell checking, a mouse gesture recognizer, and libmimeapps for freedesktop MIME integration. The code is modular and shows deliberate engineering in areas like the asynchronous job framework, feed parser, and reusable widget library, but it is a large legacy codebase with no visible automated test suite and significant compatibility debt. This is purely an application repository, not a data research project. The only data involved is user browsing data and configuration files. The project remains under active development, with recent commits through 2026, but technical drift is moderate: QtWebKit is deprecated and removed from modern Qt distributions, the Qt5/Qt6 migration is incomplete, several bundled third-party libraries are old forks, and platform-specific code is fragile. The codebase would benefit from a cleanup of the legacy web backend, better test coverage, and completion of the Qt6 port, but the core architecture is coherent and many components are genuinely reusable.

RATING: 7.6/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
amsynth/amsynth ★ 504 60 APPLICATION

amsynth is a free and open-source analog modeling software synthesizer. It implements classic subtractive synthesis with dual oscillators, a resonant low-pass filter, ADSR envelopes, LFO, distortion, and reverb. The system is designed for real-time audio and MIDI processing, supporting polyphony, portamento, pitch bend, and microtonal tuning via Scala files. It can run as a standalone application using JACK, ALSA, or OSS audio drivers, or as a plugin in LV2, VST2, DSSI, and AudioUnit formats. The architecture separates the core synthesis engine (Synthesizer, VoiceAllocationUnit, VoiceBoard) from the GUI (JUCE-based with a skinnable control panel) and plugin wrappers, all sharing a common parameter system with observer pattern and value smoothing. The repository includes a large collection of preset banks, a configuration system, and internationalization support. External dependencies include JUCE for the GUI, freeverb for reverb, MTS-ESP for microtonal support, and NSM for session management.

RATING: 7.6/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
skyjake/Doomsday-Engine ★ 303 36 APPLICATION

The Doomsday Engine is a modular game engine and source port for classic FPS games (Doom, Heretic, Hexen, Doom64) with client-server architecture. It provides enhanced rendering (OpenGL), audio systems, GUI frameworks, networking, and scripting capabilities. The engine supports extensibility via plugins and includes tools like Amethyst for documentation processing. The codebase shows strong separation of concerns with distinct libraries for core functionality, game logic, rendering, and UI. While actively maintained, it exhibits technical drift due to platform-specific conditionals, legacy code sections, and complex dependency management.

RATING: 7.6/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
MiKTeX/miktex ★ 978 126 APPLICATION

MiKTeX is a comprehensive, cross-platform TeX distribution that provides a complete typesetting system for Windows, macOS, and Linux. The repository contains the source code for TeX engines (pdfTeX, XeTeX, LuaTeX, e-upTeX, etc.), companion tools (dvipdfmx, dvisvgm, asymptote, metapost, tex4ht, etc.), the TeXworks editor, and the MiKTeX package manager (Console) and DVI viewer (Yap). It also bundles a large number of third-party libraries (FreeType, HarfBuzz, Poppler, LibreSSL, cURL, GMP, MPFR, etc.) as vendored dependencies. The architecture is monolithic: each executable compiles independently but shares a common core library (MiKTeX Core) that provides session management, file I/O, package management, and platform abstraction. The primary data flow is user-driven: packages are downloaded from remote repositories, TeX documents are compiled via one of the engines producing DVI or PDF output, and fonts are handled via system or bundled resources. The codebase is actively maintained with frequent releases, but the reliance on many vendored libraries and extensive platform-specific `#ifdef` blocks introduces moderate technical drift risk.

RATING: 7.5/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
xenia-project/xenia ★ 9695 1464 APPLICATION

Xenia is a research-grade emulator for the Xbox 360, written in C++ with a focus on accuracy and performance. It translates PowerPC (PPC) guest code into x64 machine code via a custom JIT compiler (HIR → x64 backend) and emulates the Xenos GPU using D3D12 and Vulkan backends, including shader translation from Xbox ucode to HLSL/SPIR-V. The system also emulates kernel subsystems (XAM, Xboxkrnl), audio (XMA decoding via XAudio2/SDL), input (XInput, keyboard, SDL), and the virtual file system (STFS containers, disc images, host paths). The architecture is modular with clear subsystem boundaries (base, cpu, gpu, apu, hid, kernel, vfs, ui), each with platform-specific implementations for Windows, Linux, and Android. Key entry points include the main emulator window (xenia_main.cc), the CPU processor (processor.h), the GPU graphics system (graphics_system.h), and the kernel state manager (kernel_state.h). The emulator is primarily a desktop application but includes Android support and several standalone tools for shader compilation, GPU trace analysis, and API scanning.

RATING: 7.3/10 MAINT: maintained DRIFT: medium
▸ 5 reusable components found
manisandro/gImageReader ★ 1990 219 APPLICATION

gImageReader is a mature, feature-rich desktop application that serves as a graphical frontend to the Tesseract OCR engine. It allows users to import images, PDFs, and DjVu documents, perform optical character recognition (OCR) with automatic or manual layout detection, and export the recognized text as plain text, hOCR (HTML-based OCR), PDF, or ODT. The application also integrates with scanner hardware via SANE (Linux) and TWAIN (Windows) backends, supports batch processing, and includes a spell checker, find/replace, and a substitution manager for post-processing. It is written in C++ and provides two parallel user interfaces: one using GTK+3 (gtkmm) and another using Qt5/Qt6, sharing a common core library in the `common/` directory. The architecture is a classic desktop monolith with a clear separation between the UI layer (GTK or Qt) and the backend logic (OCR, file handling, export). The codebase is well-organized with dedicated modules for scanning, image display, recognition, output editing, and export. Notable design patterns include a CRTP-based settings system (`ConfigSettings`), a custom tree model for file lists, and a worker-thread pattern for background scanning and rendering. The project has been actively maintained for over a decade, with recent commits and a large user base, though the dual-frontend approach introduces code duplication and maintenance overhead. While the application is not a research project, it demonstrates solid software engineering practices for a desktop GUI application. The most reusable components are the isolated utility classes in the `common/` directory, such as the CCITT Fax4 encoder, paper size definitions, and language mapping tables. These can be extracted and reused in other document-processing or PDF-generation projects with minimal modification. The overall code quality is good, with some areas showing age (e.g., version compatibility macros, WIP proofreading widget) but still functional and well-tested by the community.

RATING: 7.3/10 MAINT: maintained DRIFT: medium
▸ 3 reusable components found
danini/magsac ★ 505 70 APPLICATION

MAGSAC is a C++ library with Python bindings (pymagsac) implementing robust model fitting algorithms for computer vision, including homography, fundamental matrix, essential matrix, rigid transformation, and 2D line estimation. The core algorithm is a template class `MAGSAC<DatumType, ModelEstimator>` that supports sigma-consensus and MAGSAC++ scoring, with interchangeable sampling strategies (uniform, PROSAC, P-NAPSAC, NG-RANSAC, AR-Sampler) and adaptive inlier selection. The Python API mirrors the C++ functionality via pybind11, accepting numpy arrays for point correspondences and returning estimated models with inlier masks. The repository also includes benchmark datasets and Jupyter notebook examples demonstrating usage. While the library is primarily a software package, it contains research-grade data and notebooks, giving it a hybrid character. The code is well-architected with clean separation of concerns, though it has minor maintenance risks such as memory management caveats and limited platform support (Linux/Windows only).

RATING: 7.3/10 MAINT: maintained DRIFT: medium
▸ 4 reusable components found
danielknobe/blobbyvolley2 ★ 206 32 APPLICATION

Blobby Volley 2 is a complete, cross-platform 2D multiplayer volleyball game implemented in C++ with Lua scripting for AI bots and game rules. It features local and networked multiplayer (client-server via a bundled, modified RakNet stack), a dedicated server for online matchmaking, replay recording/playback, and a custom immediate-mode GUI built on SDL2. The architecture uses a state machine pattern (State base class with derived menu, game, and replay states), abstracted rendering backends (OpenGL, SDL, Null), and a custom physics engine with integrated Lua-driven rule logic. The project is built with CMake and targets Windows, Linux, macOS, Android, and Nintendo Switch, with GitHub Actions CI for multiple compilers and platforms. The game's core loop processes player input (keyboard, mouse, joystick, touch, or Lua script) through an InputManager, feeds it into DuelMatch (which combines GameLogic and PhysicWorld for physics and rules), and renders via RenderManager. Network games use RakNet for reliable UDP communication with prioritized packet handling; the dedicated server manages lobbies, matchmaking, and state broadcasting. Replays are recorded as binary state snapshots (using GenericIO serialization) and can be played back in-game. The Lua API provides bot developers with real-time game state queries, physics prediction functions, and callbacks for serve and bounce events, along with older legacy scripts in data/scripts/old. While the codebase demonstrates solid engineering (template-based serialization, abstracted file I/O with PhysFS, cross-platform build systems), it carries technical debt from aging dependencies (RakNet, Lua 5.3, SDL2, TinyXML2) and heavy use of platform-specific ifdefs. Some components, like the custom IMGUI and RakNet integration, are tightly coupled and not easily extractable, but the GenericIO serialization layer and FileSystem wrapper are self-contained and could be reused in other C++ projects needing binary I/O or virtual file system access.

RATING: 7.3/10 MAINT: active DRIFT: medium
▸ 2 reusable components found
freshe/poddl ★ 200 19 APPLICATION

poddl is a cross-platform command-line tool for batch downloading podcast episodes from RSS feeds. It fetches the RSS XML via libcurl, parses it using regex to extract episode titles, URLs, and publication dates, then downloads media files to a specified output directory. The tool supports a variety of options including downloading individual episodes, ranges, newest-first ordering, filename formatting with episode numbers and dates, whitespace handling, and early termination on existing files. The codebase is a monolithic C++11 application split into several classes: Client (HTTP), Parser (RSS parsing), Helper (utilities), FileSystem (cross-platform file operations), and a standalone HtmlCoder for decoding HTML entities. The architecture is clean and modular, with clear separation of concerns, though the use of regex for XML parsing is a known fragility. The repository includes precompiled binaries for Windows and Linux, and the build requires only g++ and libcurl. It is a straightforward, well-structured utility with no external runtime dependencies beyond libcurl.

RATING: 7.2/10 MAINT: maintained DRIFT: low
▸ 2 reusable components found
mtrebi/memory-allocators ★ 1992 173 APPLICATION

This repository provides a set of custom memory allocator implementations in C++ (Linear, Stack, Pool, FreeList, and a wrapper for malloc). The allocators are designed for educational purposes, demonstrating how to replace general-purpose malloc with more efficient, specialized allocators. The code is structured around a common base class (`Allocator`) and uses generic linked list data structures (singly and doubly linked, plus a stack-based linked list) to manage free memory blocks. A benchmarking framework (`Benchmark`) measures allocation/free throughput and memory usage. The project is a library/example, not a production service, and is intended to illustrate trade-offs between allocator types. The implementation is clean and well-organized, but lacks tests and modern C++ features, and has not been actively maintained.

RATING: 7.0/10 MAINT: stale DRIFT: low
▸ 6 reusable components found
serhii-londar/open-source-mac-os-apps ★ 50583 2838 APPLICATION

This repository is an 'awesome list' of open-source macOS applications. It does not contain any runnable software; instead, it curates a large set of applications in a structured JSON file (`applications.json`) and auto-generates a beautiful markdown README using a Swift script (`.github/main.swift`). The repo serves as a community-contributed directory of macOS apps, organized into categories like Audio, Backup, Browser, Chat, etc. The core value is the human-curated data in `applications.json`, which includes metadata such as repo URL, language, screenshots, and official site. The Swift generator reads this JSON and produces the README with badges, language icons, and collapsible screenshots. While not a software application itself, the repo provides a useful service for developers seeking open-source macOS projects to use or contribute to.

RATING: 6.4/10 MAINT: active DRIFT: low
▸ 2 reusable components found
TwilitRealm/dusklight ★ 5190 385 APPLICATION

Dusklight is a reverse-engineered reimplementation of The Legend of Zelda: Twilight Princess for PC, built on the Aurora engine. It replaces the original GameCube/Wii runtime with a modern cross-platform renderer (D3D12, Vulkan, Metal) and adds extensive modding support. The codebase is dominated by decompiled game logic (actor framework, collision, audio) and massive asset resource definitions duplicated across dozens of region variants. A custom modding layer (dusk) provides UI windows, input handling, save editing, autosave, achievements, LiveSplit integration, and a service-oriented mod dependency system. The project is actively developed but carries significant technical debt from its decompilation origins: many functions are marked NONMATCHING, large portions of SDK libraries are stub implementations, and asset headers are copied verbatim across multiple build variant directories, creating maintenance risk. The modding infrastructure shows good engineering practices, but the core game code remains tightly coupled to the original binary layout.

RATING: 6.4/10 MAINT: maintained DRIFT: medium
▸ 2 reusable components found
m4dEngi/RemotePlayWhatever ★ 1903 66 APPLICATION

RemotePlayWhatever is a Windows/Linux desktop application written in C++ using wxWidgets that forces any game (including non-Steam ones) into a Steam Remote Play Together session. It communicates directly with the running Steam client through undocumented internal APIs exposed by the open-steamworks library. The application provides a GUI to select friends or generate a guest invite link, and also supports command-line one-shot invite mode. The core functionality wraps IClientRemoteClientManager and related Steam interfaces, enabling desktop streaming for non-Steam titles. The code is structured into separate modules for Steam interaction (SteamStuff, RemotePlayInviteHandler), GUI (FriendsListFrame, ClickablePanel, FriendPanel), and utility (wxSteamStuff, QueueInviter). The README explicitly warns that the app is currently broken due to breaking changes in the latest Steam client releases, and the project relies on unstable internal APIs that may change without notice. This is not a library but a standalone tool; however, some UI components and the Steam-to-wxBitmap conversion function could be extracted for reuse in other Steam-related projects.

RATING: 6.4/10 MAINT: maintained DRIFT: medium
▸ 3 reusable components found
MTG/gaia ★ 299 66 APPLICATION

Gaia is a C++ library for similarity search and classification of audio descriptor data, developed by the Music Technology Group at Universitat Pompeu Fabra. It provides a rich set of algorithms for transforming and analyzing feature collections: normalization, PCA, RCA, SVM training/prediction, feature selection, and cleaning. The library supports both in-memory and 'frozen' (contiguous) data layouts for efficient nearest-neighbor queries with custom distance functions (Euclidean, Cosine, Kullback–Leibler, etc.) and a custom filter language for WHERE-clause predicates. Python bindings via SWIG expose the full API, and a suite of command-line tools (gaiamerge, gaiainfo, gaiafreeze) handle dataset management. A built-in classification framework with scripts for SVM grid search, cross-validation, and confusion-matrix generation complements the library. Although designed for music information retrieval (MIR) workflows in conjunction with Essentia audio extractors, the library could be adapted to any domain requiring distance-based search and transformation pipelines on structured point data. The codebase is predominantly an application-level library, with a strong research flavor due to its MIR focus.

RATING: 6.4/10 MAINT: stale DRIFT: high
▸ 4 reusable components found
Thekla/thekla_atlas ★ 500 66 APPLICATION

This repository implements an automatic texture atlas generation library for 3D meshes. Its primary function is to take an arbitrary triangle mesh (typically loaded from an OBJ file) and produce a UV-mapped mesh with a compact, packed texture atlas. The algorithm segments the mesh into charts based on geometric and topological criteria, parameterizes each chart using least-squares conformal mapping (LSCM) or orthogonal projection, and packs the charts into a single bitmap using a brute-force or random bin-packing strategy. The library is designed to handle non-manifold meshes, supports colocal vertices, and provides quality metrics such as stretch and conformal distortion. The architecture is modular, with separate libraries for core utilities (nvcore), mathematics (nvmath), mesh data structures (nvmesh), and image handling (nvimage). The public API is a single C-linkage function `atlas_generate` with options for quality, texel density, and packing alignment. The codebase was originally developed for use in the video game 'The Witness' and is released under the MIT license. It includes a test harness that loads an OBJ file and prints atlas results. The repository is functionally complete but shows its age: it predates C++11, uses custom containers instead of STL, and relies on vendored dependencies (tinyobj, stb_image, poshlib) with known limitations. The packing algorithm can be slow for large meshes, and there are numerous TODO comments and dead code paths. Despite this, the underlying algorithms are sound and the half-edge mesh, sparse solver, and rasterization components are well-implemented and could be extracted for use in other 3D projects.

RATING: 6.2/10 MAINT: stale DRIFT: high
▸ 3 reusable components found
dobin/RedEdr ★ 508 56 APPLICATION

RedEdr is a Windows telemetry recorder designed for red teams and malware developers to assess detection surface before hitting a real EDR. It captures events from multiple Windows security layers: ETW (Event Tracing for Windows), ETW-TI (Threat Intelligence), kernel callbacks, and user-mode API hooks via Detours. The system comprises a main orchestrator (RedEdr.exe) that starts all reader subsystems, a kernel driver (RedEdrDriver.sys) for process/thread/image callbacks and KAPC injection, a DLL (RedEdrDll.dll) injected into target processes for ntdll.dll hooking, and a PPL service (RedEdrPplService.exe) that consumes ETW-TI events. An embedded web server (port 8081) serves a REST API and a client-side log viewer for filtering and analyzing captured events. The architecture follows a producer-consumer pattern: events from all sources (ETW, kernel pipe, DLL pipe, PPL pipe) are aggregated into a central EventAggregator, augmented with process and memory context, and then stored for retrieval via the web API. Inter-component communication relies on named pipes with simple ASCII command protocols. The kernel driver also includes an ELAM driver to allow the PPL service to run as a protected process. While the project demonstrates deep Windows internals knowledge and provides a comprehensive telemetry capture system, it has significant maintenance risks: hardcoded paths (C:\RedEdr\), fragile driver build dependencies, minimal unit test coverage, and several commented-out hooks in the injected DLL. The codebase is functional for its intended red-team use case but is not production-grade without substantial hardening.

RATING: 6.0/10 MAINT: stale DRIFT: medium
▸ 5 reusable components found
tomek-o/tSIP ★ 201 41 APPLICATION

tSIP is a Windows-only SIP softphone application built on top of the baresip SIP user agent framework, which itself relies on the re (libre) and rem (librem) networking and media libraries. The repository bundles a large number of third-party libraries as source code: Opus, Speex, G.722, GSM, FFmpeg, OpenSSL, WebRTC audio processing, ZRTP (GNU ZRTP), PortAudio, SDL2, Scintilla, Lua, and JSONcpp. The tSIP GUI is written in Borland C++ Builder VCL, with forms for call management, contacts, history, programmable buttons, hotkeys, Lua scripting, and configuration. The architecture is a classic Windows desktop application with a modular plugin system for codecs and media sources. The codebase is a snapshot from around 2012-2015, with many outdated libraries and compiler-specific code, making it high-risk for reuse without significant modernization. It is not a data research project; it is a full-featured VoIP client.

RATING: 5.3/10 MAINT: stale DRIFT: high
▸ 5 reusable components found
$ loading more...
$ submit: