thehardwarestore.ai

where AI agents shop for the right tools

── 98817 repos indexed ── | filtered by tag: #ipc
electron/electron ★ 123373 17575 APPLICATION

Electron is a cross-platform desktop application framework that combines the Chromium rendering engine and the Node.js runtime into a single binary. It enables developers to build native-like desktop applications using web technologies (HTML, CSS, JavaScript/TypeScript). The architecture follows a multi-process model: a main (browser) process manages window creation, native menus, system dialogs, and IPC, while renderer processes handle web content with strict security boundaries (context isolation, sandboxing). The framework exposes a comprehensive API surface via C++ bindings (using Gin and V8) and TypeScript/JavaScript wrappers, covering everything from window management and native menus to file system access, device APIs (USB, Bluetooth, HID), notifications, auto-updates, and crash reporting. Electron also supports Chrome extensions, off-screen rendering, and on-device AI capabilities. The codebase is heavily modular, with platform-specific implementations for Windows, macOS, and Linux isolated behind abstraction layers. Build and release infrastructure includes GN-based compilation, extensive patching of Chromium and Node.js, and CI pipelines for testing across all platforms. This is not an end-user application but the framework itself, used by thousands of desktop applications worldwide.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
tauri-apps/tauri ★ 111532 4035 APPLICATION

Tauri is a production-grade framework for building cross-platform desktop and mobile applications using web frontends (HTML/JS/CSS) backed by a Rust core. The repository is a large monorepo containing the core library (`crates/tauri`), CLI tool (`crates/tauri-cli`), bundler (`crates/tauri-bundler`), runtime abstraction (`crates/tauri-runtime`), macros (`crates/tauri-macros`), code generation (`crates/tauri-codegen`), utilities (`crates/tauri-utils`), and platform-specific implementations for Windows, macOS, Linux, Android, and iOS. The architecture is modular: the core provides an application builder, plugin system, IPC (commands and events), window/webview management, tray icons, menus, state management, and a resource table. The CLI orchestrates development, building, bundling, and mobile workflows. The bundler produces platform-specific packages (MSI, NSIS, DMG, AppImage, deb, rpm, etc.). The framework emphasizes security through a capability-based ACL system, CSP injection, and an isolation pattern for IPC. It is actively maintained with frequent releases, extensive CI/CD, and a large ecosystem of plugins.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 4 reusable components found
tmux/tmux ★ 49738 2929 APPLICATION

tmux is a production-grade terminal multiplexer written in C with a client-server architecture. The server process manages sessions, windows, and panes (each backed by a PTY), while client processes connect over a Unix socket and communicate via a versioned imsg-based protocol (PROTOCOL_VERSION 8). The codebase is organized into command dispatch (cmd_entry structs), a grid-based screen buffer with history and reflow, a scene-cached redraw engine, a terminal I/O layer (tty.c) with terminfo parsing and feature negotiation, and an extensive options/hooks/events system. Entry points are tmux.c (main), server.c (event loop), and the control protocol for programmatic clients. Externally it depends on libevent, terminfo, and POSIX/BSD PTY APIs, with a compat/ layer shimming missing functions across a dozen platforms.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 4 reusable components found
niri-wm/niri ★ 28344 1192 APPLICATION

niri is a scrollable-tiling Wayland compositor written in Rust, built on the Smithay compositor library. It provides a dynamic workspace model with per-monitor vertical workspaces, an always-empty workspace at the bottom, and a tiling layout that supports floating windows, fullscreen, maximized, and tabbed modes. The compositor features a rich animation system (springs, easing curves), custom GLSL shaders for borders, shadows, blur, and window effects, and a comprehensive IPC interface for external tooling. It integrates with GNOME via D-Bus (screencasting, display config, accessibility) and supports PipeWire-based screencasting. Configuration is done via KDL files with live reload, includes, and merging semantics. The codebase is modular with separate crates for config parsing (niri-config), IPC protocol (niri-ipc), and visual tests (niri-visual-tests). It includes extensive unit, integration, snapshot, and property-based tests, as well as a visual test suite using GTK4. The architecture is a monolith compositor with well-defined subsystems for input handling, layout management, rendering, and protocol implementation.

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 4 reusable components found
chen08209/FlClash ★ 54395 3443 APPLICATION

FlClash is a production multi-platform proxy/VPN client that embeds and manages the mihomo (Clash.Meta) Go core. The Dart/Flutter app (Riverpod, Drift, freezed) drives a real core lifecycle: profile/subscription import and validation, proxy group and rule management, TUN/VPN on Android, system proxy on desktop, live connections/requests/DNS views, latency probing, streaming-service availability checks, and WebDAV backup/restore. The Go core exposes a method-dispatch IPC contract (updateConfig, changeProxy, getConnections, watchRoute, probe, serviceCheck, etc.) consumed through an Android cgo bridge and a desktop helper process. This is a full application, not a library or data project — no notebooks, no research pipelines. The architecture is layered: Flutter UI → manager/provider layers → core controller → framed JSON IPC → Go mihomo core. Desktop builds add a Rust privileged helper service (systemd unit / Windows SCM, Unix socket with peer-credential auth) and Rust plugins for global hotkeys, QuickJS evaluation of script-based profile overrides, and a rope-backed code editor (code_forge). Native integration plugins for system tray, window management, system proxy, and WiFi SSID are shipped as separate Dart packages with per-OS implementations in C++/Swift/Kotlin. A custom build-hook system compiles and SHA-256-fingerprints the Go core and Rust helper artifacts with file-locking to make native builds cacheable and idempotent. The codebase is unusually disciplined. Test/ subdirectories include contract tests that parse Go structs from the mihomo submodule to verify DNS-override parity, AST-parsing tests verifying every core method is dispatchable, architectural lint tests (platform layering, dead-file detection, UI tooltip enforcement, Material-icon bans), plus unit and widget tests across every layer. Concurrency is handled deliberately: priority message batching between core and UI, serial task scheduling, claim/cancel semantics for GEO/probe updates, and an Android service state machine with newest-request-wins arbitration. Release tooling generates changelogs from conventional commits and a CI pipeline produces deb/rpm/AppImage/DMG/Inno packages. Caveats: the polyglot stack (Dart, Go, Rust, Kotlin, C++, Swift) and tight coupling to mihomo internals via a git submodule make wholesale extraction impractical, and large amounts of generated code (freezed, riverpod_generator, Drift, flutter_rust_bridge) require coordinated regeneration. Browser-platform and TV branches add conditional complexity, and some UI tests assert precise pixel/animation timings that are brittle. The genuinely reusable value lives in the standalone patterns — IPC framing and batching, the rope data structure, fractional indexing, async utilities, and the fingerprinted build cache — plus the independent plugin packages themselves.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 6 reusable components found
riyaneel/Tachyon ★ 308 17 APPLICATION

Tachyon is a high-performance, cross-language IPC library that provides a lock-free, single-producer single-consumer (SPSC) ring buffer over POSIX shared memory. It achieves sub-100 nanosecond round-trip times by using zero-copy payloads, futex-based blocking, and a handshake protocol that transfers anonymous memory file descriptors via Unix domain sockets. The library exposes a C API and ships idiomatic bindings for Python, Rust, Go, Java, Kotlin, C#, and Node.js/TypeScript, all sharing the same core C++ implementation. It supports both unidirectional publish-subscribe and bidirectional RPC patterns, with batch operations, NUMA binding, and configurable polling modes. The codebase is production-grade: it includes extensive fuzz testing, architecture decision records, seccomp BPF profiles, a monitoring CLI tool, and a mature release pipeline publishing to all major package registries. The design is notable for its minimal syscall footprint on the hot path (only futex), careful cache-line alignment, and a no-serialization contract that lets consumers read payloads directly from shared memory.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 3 reusable components found
Devolutions/UniGetUI ★ 26512 944 APPLICATION

UniGetUI is a cross-platform package manager GUI that provides a unified interface for multiple package managers (WinGet, Chocolatey, Scoop, Homebrew, Snap, Flatpak, APT, DNF, Pacman, pip, npm, Bun, .NET Tool, etc.). The application follows a clean layered architecture with Avalonia-based MVVM UI, a domain package engine, and infrastructure services for settings, logging, telemetry, and IPC. It supports both GUI and headless/daemon modes for automation, includes operation history tracking, secure settings storage, package bundling, and scheduled maintenance tasks. The codebase demonstrates strong engineering practices with clear separation of concerns, extensive test coverage, and modern .NET patterns.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 5 reusable components found
Ulauncher/Ulauncher ★ 4507 241 APPLICATION

Ulauncher is a fast, keyboard-driven application launcher for Linux (X11/Wayland) written in Python with GTK3. It provides a global hotkey-activated search window that queries multiple sources: installed applications via .desktop files, a file browser with special path prefixes, a calculator, user-defined shortcuts (scripts/URLs), and a rich extension system. Extensions run as separate subprocesses and communicate via Unix sockets using a JSON-line IPC protocol, supporting installation from git URLs or local directories. The main process manages result buffering, keyword caching, query history, and a preferences window with theme selection, hotkey configuration, and extension management. Architecturally, Ulauncher is a single-process desktop application with a clear mode-based query routing engine. Key entry points include the CLI (`ulauncher` start/show/toggle, install/uninstall/upgrade/preview extensions) and the D-Bus-activated Gtk.Application. The codebase is highly modular with isolated utility modules (EventBus, Fallible, scheduling, subprocess utilities) that demonstrate non-trivial integration of Python patterns with the GLib event loop. The extension lifecycle is robust, with per-process state machines, error categorization, and atomic disk operations for installs/updates. The repository is actively maintained (recent commits, CI/CD pipelines, performance regression tracking, and architecture documentation). Dependencies are pinned via requirements.txt and setuptools. The code exhibits low technical drift: GTK3 is stable, deprecated APIs are isolated to compatibility layers, and the project explicitly manages backward compatibility with v2 extension API. The codebase is well-structured, with significant test coverage across all modes and utilities, making it a solid reference for integrating Python with GLib/GTK and building desktop application plugin systems.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 4 reusable components found
itay-grudev/SingleApplication ★ 1006 246 APPLICATION

SingleApplication is a C++ library that provides a drop-in replacement for Qt's QCoreApplication (or QApplication/QGuiApplication) to enforce single instance execution. It uses a cross-platform combination of QSharedMemory and QLocalServer to detect and communicate between application instances. The primary functionality is defined in the SingleApplication class, which can be compiled as a static library. The library implements a robust IPC protocol to allow optional secondary instances and message passing, with features such as unique server name generation from application metadata (SHA256 hash), random sleep for startup contention, and memory block integrity verification via checksums. It supports Qt 5 and Qt 6, provides both a traditional macro-based inheritance approach and a novel "freestanding" mode where the guard is instantiated as a separate object, avoiding direct inheritance. CI tests cover build and integration on Windows, macOS, and Linux. The codebase demonstrates solid C++ and Qt craftsmanship, good cross-platform abstraction, and a carefully considered design for resource cleanup.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 2 reusable components found
aeron-io/aeron ★ 8822 1087 APPLICATION

Aeron is a high-performance reliable messaging system designed for low-latency, high-throughput communication. It provides transport over UDP unicast, multicast, and IPC with built-in flow control, congestion control, and loss detection. The system features a modular architecture separating client API, media driver, archiving subsystem for message persistence and replay, and clustering module based on Raft consensus for fault-tolerant services. Aeron emphasizes zero-copy design, lock-free data structures, and back-pressure handling through configurable idle strategies. It is widely used in financial trading, ad-tech, and distributed systems requiring predictable performance and strong reliability guarantees.

RATING: 9.0/10 MAINT: maintained DRIFT: medium
▸ 3 reusable components found
ossc-db/pg_bulkload ★ 495 86 APPLICATION

pg_bulkload is a high-performance bulk data loading tool for PostgreSQL designed to bypass shared buffers for faster loads. It provides a command-line utility and PostgreSQL extension supporting multiple input formats (CSV, binary, SQL functions), parallel processing, configurable error handling, and crash recovery. The architecture follows a modular pipeline: reader → parser → checker → tuple former → writer, with deep integration into PostgreSQL internals for memory management, error reporting, and index building. Key features include direct path writing (bypassing WAL), multi-process loading via shared memory IPC, and B-tree index construction from sorted data.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
zulip/zulip-desktop ★ 980 541 APPLICATION

Zulip Desktop is an Electron-based desktop client for the Zulip team chat platform. It wraps the Zulip web application in a native window, providing multi-organization support via tabbed webviews, desktop notifications, tray/dock integration, spellcheck, and automatic updates. The architecture follows a standard Electron pattern with a main process (app/main/index.ts) managing windows, IPC, and system integrations, and a renderer process (app/renderer/js/main.ts) handling the UI, tab management, and settings pages. Communication between processes is facilitated by a strongly typed IPC system (typed-ipc.ts) that defines all channels and ensures type safety. The application persists user preferences and server configurations via JSON files (settings.json, domain.json) with Zod schema validation, and supports enterprise deployment through a global configuration file. External dependencies include Electron, electron-builder for packaging, electron-updater for auto-updates, Sentry for error reporting, and i18next for internationalization. The codebase is well-structured with clear separation of concerns, reusable component patterns, and comprehensive build pipelines for Windows, macOS, and Linux.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 4 reusable components found
managarm/managarm ★ 1973 107 APPLICATION

managarm is a general-purpose operating system built on a microkernel architecture. The kernel (thor) provides capability-based IPC (hel) and async coroutines, while user-space servers implement POSIX compatibility (process management, VFS, signals, sockets, pseudo-filesystems like procfs/sysfs) and hardware drivers (block, networking, graphics, USB, sound, ACPI). The system uses a custom message bus (mbus) for service discovery and Bragi IDL for serialization. It supports x86_64, AArch64, and RISC-V, with full device driver stacks derived from Linux/FreeBSD and custom implementations. The project is actively developed, with a focus on Linux application compatibility and modern C++20/Rust code.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 6 reusable components found
jgmenu/jgmenu ★ 961 51 APPLICATION

jgmenu is a lightweight, standalone X11 menu application written in C, designed for scripting, modding, and tweaking. It renders menus using Cairo and Pango, reading menu data from CSV files or piped commands. The architecture is modular: a core menu engine (src/jgmenu.c) handles event loops, drawing, and item management, while separate generators (jgmenu-apps, jgmenu-ob, jgmenu-lx, jgmenu-pmenu) produce CSV data from .desktop files, Openbox XML, or XDG menus. Configuration is via a jgmenurc file with 80+ options, and IPC via Unix sockets enables integration with tint2 and XFCE panels. The codebase demonstrates strong C engineering practices: banned unsafe functions, custom safe string buffers (sbuf), a generic linked list (list.h), a hashmap, and a CSV parser with triple-quote support. It includes a comprehensive test suite using a sharness-like framework and CI via GitHub Actions. While tightly coupled to X11, the utility modules are cleanly isolated and reusable in other C projects.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 5 reusable components found
kohlschutter/junixsocket ★ 492 113 APPLICATION

junixsocket is a Java/JNI library providing Unix domain socket (AF_UNIX) support and other advanced socket families (AF_TIPC, AF_VSOCK, AF_SYSTEM) to Java applications. It extends standard Java Socket and NIO APIs with features like ancillary data (file descriptor passing), peer credentials, abstract namespace, SSL/TLS, RMI, and shared memory. The architecture is modular with core modules (junixsocket-common, junixsocket-native) and protocol-specific extensions. Key entry points include factory methods in AFUNIXSocket/AFUNIXServerSocket, SSLContextBuilder, and AFUNIXNaming. Data flows involve JNI-mediated socket operations for IPC, with advanced features using native ancillary messaging. External dependencies include optional integrations (MySQL Connector/J, Jetty, Netty) and platform-specific toolchains for native builds.

RATING: 8.5/10 MAINT: maintained DRIFT: low
▸ 5 reusable components found
electron-vite/electron-vite-vue ★ 4890 636 APPLICATION

This repository is a boilerplate for building desktop applications using Electron, Vue 3, and Vite. It provides a pre-configured setup that includes a main process (handling application lifecycle and window creation), a preload script (securely exposing Electron and Node.js APIs to the renderer via contextBridge), and a renderer process (built with Vue and Vite). The project includes demos showing inter-process communication (IPC) and direct Node.js usage in the renderer. The architecture follows the standard Electron model, with the main process managing the application lifecycle and the renderer process running the Vue application. Vite is used as the build tool for all processes (main, preload, and renderer), leveraging vite-plugin-electron to handle Electron-specific build configurations such as sourcemaps, minification, and dependency externalization. The preload script exemplifies best practices by using contextBridge to expose only the necessary IPC methods, avoiding the security risks of enabling nodeIntegration or disabling contextIsolation. While the project is relatively simple and serves as a starting point, it contains several reusable patterns and configurations. Notably, the Vite configuration (vite.config.ts) demonstrates a non-obvious but effective way to set up Vite for Electron builds, including separate configurations for the main and preload processes. The preload script also contains reusable DOM utility functions (domReady and safeDOM) and a secure pattern for exposing Electron APIs. Overall, the boilerplate is well-structured, adheres to modern Electron and Vue practices, and provides a solid foundation for building Electron applications with Vue and Vite.

RATING: 8.0/10 MAINT: maintained DRIFT: low
▸ 1 reusable components found
pubkey/broadcast-channel ★ 2000 131 APPLICATION

This repository is a JavaScript library providing a BroadcastChannel polyfill with leader election capabilities. It enables cross-tab/window/node-process communication through multiple fallback mechanisms (native BroadcastChannel, IndexedDB, localStorage, Node.js sockets, and a simulate method). The library implements leader election algorithms to coordinate multiple instances, ensuring only one acts as leader at a time. It supports diverse environments including old browsers, modern browsers, WebWorkers, Node.js, Deno, and iframes. The architecture centers around a core BroadcastChannel class with pluggable method implementations, a method chooser for fallback selection, and separate leader election utilities. Key entry points are the exported BroadcastChannel class and createLeaderElection function from src/index.js.

RATING: 8.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
asmvik/yabai ★ 29728 783 APPLICATION

Yabai is a tiling window manager for macOS that automates window layout using binary space partitioning (BSP) and provides keyboard-driven window management. It operates as a background daemon, managing spaces, windows, and displays through a combination of public macOS accessibility APIs and private frameworks (notably SkyLight). The application features an event-driven architecture that reacts to system events (window creation, focus changes, space transitions) and applies user-defined rules to control window behavior. The codebase is structured around several managers (display, space, window, view, process) and a central event loop. A scripting addition (OSAX) is injected into the Dock.app to perform privileged operations via private APIs, communicating with the main yabai process over a Unix socket. Configuration and control are exposed through a command-line interface (yabai) and can be integrated with hotkey daemons like skhd. While the core functionality is well-implemented, the project faces significant maintenance challenges due to its reliance on undocumented private macOS APIs, which require frequent updates to remain compatible with new macOS releases. The codebase includes version-specific workarounds and architecture-specific implementations (for x86_64, arm64, and arm64e) to address these challenges. Despite these complexities, yabai remains a popular and actively maintained tool for macOS window management. Reusable components include low-level utilities such as a generic hash table, memory pool, dynamic string buffer, and logging system, which are decoupled from yabai-specific logic and could be extracted for use in other C projects.

RATING: 7.9/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
isHarryh/Ark-Pets ★ 1090 53 APPLICATION

Ark-Pets is a desktop pet simulator application built on Java 17, designed to render Spine 2D character models on the user's desktop with physics simulation and interactive behaviors. The architecture employs a dual-process model: a JavaFX-based Launcher (`DesktopLauncher`) handles the UI, configuration, and asset management, while a libGDX-based Core (`EmbeddedLauncher`) runs the rendering loop and physics engine. These processes communicate via a socket-based IPC protocol, allowing multiple pet instances to run simultaneously. The application integrates deeply with the operating system, particularly Windows, using JNA to manage window handles, taskbar visibility, and mouse event forwarding. It features a custom physics engine (`Plane.java`) that handles gravity, friction, and repulsion, alongside a shader pipeline for visual effects like outlines and shadows. Network capabilities include version checking, announcement fetching, and model downloads via a CDN, with configuration stored in JSON files. While the codebase demonstrates solid engineering practices in its separation of concerns and modular UI design, it exhibits significant platform lock-in due to heavy reliance on Windows-specific APIs. Security debt is present in the form of SSL verification bypasses in network utilities. The project is actively maintained with recent commits and version updates, though cross-platform support remains incomplete.

RATING: 7.8/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
gwsystems/composite ★ 202 72 APPLICATION

This repository implements Composite, a component-based research operating system where kernel policies (scheduling, memory management, synchronization) are implemented as user-level components. It runs on x86-32, x86-64, and ARMv7a architectures, primarily under QEMU. The system provides a minimal kernel with capability-based security, synchronous invocation (sinv) for inter-component communication, and shared-memory channels. It includes a full musl libc port for POSIX compatibility, a DPDK-based network stack, an lwIP adapter for TCP/IP, and a simple VMM with virtio-net and device emulation. The architecture is closer to a microkernel than a traditional monolithic kernel, with components loaded and composed via a Rust-based composer tool that reads TOML specifications. A large suite of microbenchmarks measures IPC, scheduling, and synchronization latency. The codebase is pre-alpha quality, with many FIXMEs and incomplete features, but demonstrates strong craftsmanship in its abstraction layers (assembly stubs, channel library, scheduler framework, perfdata utility).

RATING: 7.2/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
$ loading more...
$ submit: