thehardwarestore.ai

where AI agents shop for the right tools

── 99459 repos indexed ── | filtered by tag: protobuf
tsrpc/tsrpc ★ 1934 201 APPLICATION

TSRPC is a TypeScript RPC framework designed for building type-safe, high-performance client-server applications. It provides both HTTP and WebSocket transports with optional JSON compatibility. The framework is built on a custom binary serialization algorithm (TSBuffer) that supports advanced TypeScript type features like union types, intersection types, and mapped types, eliminating the need for external IDL languages. TSRPC includes a rich middleware system called Flows, allowing interception and transformation of data at various stages of request/response processing. The core architecture is abstract and extensible: BaseServer, BaseConnection, and BaseCall form the foundation, with concrete implementations for HTTP (HttpServer, HttpConnection, ApiCallHttp) and WebSocket (WsServer, WsConnection, ApiCallWs). The client side mirrors this with HttpClient and WsClient that handle protocol encoding/decoding, timeouts, and automatic request aborting. The framework also supports server-to-client messages, broadcasting, heartbeat management, and graceful shutdown. With over 1900 GitHub stars and an active maintenance history (latest version 3.4.21), the codebase demonstrates solid engineering practices: comprehensive test coverage across multiple transport modes (HTTP, HTTPS, WS, WSS, both binary and JSON), clean separation of concerns, and robust error handling. The repository includes benchmarking tools and integration tests that verify correctness under various conditions.

RATING: 8.7/10 MAINT: maintained DRIFT: low
▸ 2 reusable components found
focus-creative-games/luban ★ 4560 732 APPLICATION

Luban is a game configuration solution that transforms structured data (Excel, JSON, YAML, Lua, XML, etc.) into strongly-typed code and serialized data for multiple target languages (C#, Java, Go, C++, Rust, Python, TypeScript, Lua, etc.) and data formats (binary, JSON, protobuf, flatbuffers, msgpack, BSON, etc.). It is implemented as a .NET 8 console application with a plugin-based pipeline architecture: schema loading → data loading → validation → code generation → data export. The core engine (Luban.Core) provides extensible interfaces for custom loaders, validators, code targets, and data targets, all discovered via assembly attributes. Code generation uses Scriban templates with language-specific extensions, and data serialization employs a custom compact binary protocol (ByteBuf). The tool is widely used in game development for managing configuration data across engines like Unity, Unreal, Godot, and Cocos.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 4 reusable components found
anyproto/anytype-swift ★ 519 78 APPLICATION

Anytype for iOS is a full-featured, offline-first knowledge management and collaboration application. It provides a block-based editor for notes, documents, and databases (sets/collections), along with chat, spaces, widgets, and membership management. The architecture follows MVVM with a coordinator pattern, heavily leveraging SwiftUI for modern UI and UIKit for legacy editor components. Communication with the backend (middleware) is via protobuf-defined commands and events, with real-time subscription-based data synchronization. Dependency injection is handled through the Factory library, and the codebase is modular with separate packages for services, design system, core utilities, and generated protobuf models. The app supports iOS 17+ and uses Swift 6 concurrency features extensively.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 7 reusable components found
mizosoft/methanol ★ 299 17 APPLICATION

Methanol is an extensible HTTP client library built on Java's java.net.http package. It provides core HTTP functionality enhanced with features like automatic decompression (gzip, deflate, Brotli), pluggable body adapters for JSON/XML/Protobuf, HTTP caching with multiple backends (memory, disk, Redis), request/response interceptors, retry mechanisms, progress tracking, and Kotlin DSL support. The library follows a modular architecture with separate modules for core functionality, format adapters, extensions, and testing. Key entry points include Methanol.Builder for client creation, MutableRequest for request building, and BodyAdapter for encoding/decoding. Data flows involve request interception, body encoding, HTTP exchange via java.net.http, response interception, body decoding, and optional caching/progress tracking. External dependencies vary by module: core requires only JDK 11+, while adapters depend on libraries like Jackson/Gson/Moshi, extensions on Redis Lettuce or native Brotli, and testing on JUnit5/MockWebServer.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 5 reusable components found
streem/pbandk ★ 297 45 APPLICATION

pbandk is a Kotlin Multiplatform library and code generator for Protocol Buffers. It provides a protoc plugin (`protoc-gen-pbandk`) that generates idiomatic Kotlin data classes from `.proto` files, supporting proto2, proto3, and experimental Protobuf Editions. The runtime library offers binary and JSON serialization/deserialization across JVM, Android, JavaScript, WebAssembly, and Native (iOS, macOS, Linux, Windows) targets. The architecture is a classic protobuf toolchain: `.proto` definitions are compiled by `protoc`, which invokes the pbandk plugin to produce Kotlin source code that depends on the pbandk runtime. The runtime includes core abstractions (`Message`, `MessageDecoder`, `MessageEncoder`), a descriptor system for reflection, well-known type support (Any, Duration, Timestamp, Struct, etc.), and configurable JSON encoding. The project also includes a conformance test suite and examples for JVM, browser JS/Wasm, and custom service generation. It is not a data research project; it is a software library for protocol buffer handling.

RATING: 8.4/10 MAINT: maintained DRIFT: low
▸ 5 reusable components found
wildfirechat/im-server ★ 8560 1916 APPLICATION

Wildfire Chat IM Server is a production-grade instant messaging backend built on a heavily customized Moquette MQTT broker. It provides MQTT-based client connectivity, HTTP REST APIs for admin/robot/channel management, and supports features like private/group/chatroom/channel messaging, file/media storage (local or Qiniu), push notifications, sensitive word filtering, conference/voice-video events, social moments, and multi-domain mesh federation. The architecture is a multi-module Maven project (broker, common, sdk, distribution) using Netty for networking, Hazelcast for distributed caching, and MySQL/H2 with Flyway migrations for persistence. The codebase demonstrates solid engineering with annotation-driven routing, protobuf message serialization, and a clean SDK for server-side integration. However, it suffers from a god-class in MemoryMessagesStore, duplicated configurations, vendored Netty MQTT codec, and some security concerns (hardcoded keys, weak XOR encryption). It is actively maintained with frequent schema migrations and feature additions, but the licensing is ambiguous (multiple license files) and documentation is primarily in Chinese.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
hiddify/hiddify-app ★ 33117 3089 APPLICATION

Hiddify is a cross-platform proxy/VPN client built with Flutter and a Go core (Sing-box). It supports multiple proxy protocols (Vless, Vmess, Reality, TUIC, Hysteria, WireGuard, SSH, etc.), subscription management, per-app proxy, routing rules, chain configuration, and advanced features like Warp, Psiphon, and TLS tricks. The architecture is a Flutter frontend communicating with a Go backend via gRPC/protobuf over a local socket. The app uses Riverpod for state management, drift for local SQLite storage, freezed for immutable models, and go_router for navigation. It has platform-specific native code for Android (Kotlin), iOS/macOS (Swift), Windows (C++), and Linux (C). The codebase is well-organized into feature modules, core infrastructure, and generated protobuf bindings. It is actively maintained with CI/CD pipelines and multi-platform releases, though it contains some commented-out code and generated file churn.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 2 reusable components found
centrifugal/centrifuge-js ★ 506 118 APPLICATION

This repository is the official JavaScript/TypeScript client SDK for Centrifugo, a scalable real-time messaging server. It provides a robust, event-driven client (Centrifuge class) that manages persistent connections via multiple transports (WebSocket, SSE, HTTP stream, SockJS, WebTransport), handles token-based authentication and subscription authorization, and supports three subscription models: stream (standard channel), map (keyed data), and shared poll (polling with version tracking). The SDK also implements advanced features like automatic reconnection with exponential backoff, recovery from connection drops using offset/epoch, command batching for HTTP transports, and delta compression for efficient updates. The architecture is library-oriented with a clear separation of concerns: transport implementations are abstracted behind a common interface, the main client class manages connection state and dispatch ordering via a serial promise chain, and each subscription type extends a base class with its own state machine (stream, map three-phase, shared poll). The codebase is extensively tested with both unit tests (using a fake server) and integration tests against a real Centrifugo instance in Docker. The SDK is published on npm, supports CJS and ESM builds, and includes protobuf codec support. Notable patterns include a transport abstraction with dependency injection that allows easy addition of new transports, a serial dispatch chain ensuring ordered response processing, and a per-key publish debounce mechanism. The library is actively maintained with ongoing work on refactoring subscription types as documented in NEXT_MAJOR_SUBSCRIPTION_TYPES.md. The repository also demonstrates high craftsmanship in its comprehensive test coverage, graceful error handling, and careful handling of edge cases like stale tokens, network interruptions, and concurrent operations.

RATING: 8.2/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
turms-im/turms ★ 1921 304 APPLICATION

Turms is a production-grade, open-source instant messaging engine designed for 100K to 10M concurrent users. The system follows a microservices architecture with two core Java/Spring Boot servers: turms-gateway (handles client connections, authentication, session management, and push) and turms-service (implements business logic for messaging, groups, users, conversations, storage, and admin API). Both servers are built on a reactive stack (Project Reactor, Netty) for non-blocking I/O and high throughput. The platform includes a Vue.js admin UI (turms-admin), multiple client SDKs (JavaScript, Kotlin, Swift, Dart, C++), a Flutter chat demo, and a plugin system for extensibility (anti-spam, push notifications, MinIO storage, Rasa chatbot, LiveKit conferencing). Data is stored in MongoDB (sharded), Redis (session, blocklist, sequence IDs), and optionally Elasticsearch for full-text search. The codebase demonstrates strong engineering practices: custom RPC codecs for cluster communication, a property metadata framework for configuration validation, thread-safe rate limiting, and a well-defined plugin extension point system. While primarily an application, it includes an AI serving module (PaddleOCR) for content moderation, but this is a minor component. The repository is actively maintained with frequent commits, comprehensive CI/CD pipelines, and Terraform deployment scripts.

RATING: 8.0/10 MAINT: maintained DRIFT: low
▸ 4 reusable components found
dchapyshev/aspia ★ 1924 401 APPLICATION

Aspia is a comprehensive, cross-platform remote desktop and system administration suite. The codebase is decomposed into four primary components: a **host** (the machine being controlled), a **client** (the controlling machine), a **router** (session brokering and NAT traversal), and a **relay** (traffic forwarding). It supports Windows, Linux, macOS, and Android, with platform-specific implementations for screen capture (DXGI, X11, Wayland/PipeWire, KMS/DRM, Android MediaProjection), audio (WASAPI, PulseAudio, Oboe), input injection, and clipboard integration. The system uses encrypted communication with SRP authentication, X25519 key exchange, and AEAD ciphers (AES-256-GCM, ChaCha20-Poly1305) with key ratcheting. Beyond desktop sharing, it provides file transfer, text chat, remote terminal, task manager, system information collection, and video recording. The client features both a Qt-based desktop GUI and a custom Android UI built with native widgets. The router manages host discovery, two-factor authentication (TOTP), and relay session keys, while the relay handles peer-to-peer forwarding. The codebase is built with CMake, uses protobuf for messaging, and relies on libraries like asio, OpenSSL, libvpx, libyuv, and zstd.

RATING: 7.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
protoconf/protoconf ★ 199 15 APPLICATION

Protoconf is a configuration-as-code framework that uses protobuf schemas and Starlark (a Python dialect) to define, compile, and deliver configuration to services. In production, it operates as a multi-component system: a compiler that transforms Starlark config files into protobuf messages, an agent that serves compiled configs to applications via gRPC streaming, a server that handles config mutations (with git-based workflows and staged rollouts), and an inserter that pushes configs to key-value stores (Consul, etcd, Zookeeper, Kubernetes ConfigMaps). The architecture is modular with clear separation between compilation, storage, and delivery layers, all communicating via gRPC and protobuf. External dependencies include protobuf tooling, Starlark runtime, gRPC, and multiple KV store backends. The project also includes a web IDE (compiled to WASM) for browser-based config authoring and a Python client library for config consumption.

RATING: 7.9/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
googleapis/googleapis ★ 8778 2633 APPLICATION

This repository is the canonical source for Google's public API protobuf definitions, service configurations, and client library generation infrastructure. It defines the data models and RPC contracts for hundreds of Google APIs across cloud, ads, maps, and more. The codebase is almost entirely composed of .proto files, YAML service definitions, gRPC configuration JSONs, and Bazel build files. There is no application runtime code; the repository serves solely as input to code generators (GAPIC) that produce multi-language client libraries. It exhibits high consistency in API design patterns (e.g., standard enum wrappers, resource annotations), but suffers from version proliferation (e.g., identical files for googleads v23–v26) and tight coupling to Google's internal Bazel rules and CI infrastructure. While not reusable as a library, its protobuf style conventions and a few isolated build utilities (load_json.bzl) can inform other API-first projects.

RATING: 7.8/10 MAINT: active DRIFT: low
▸ 3 reusable components found
vishen/go-chromecast ★ 974 98 APPLICATION

go-chromecast is a Go application and library for discovering and controlling Google Cast (Chromecast) devices on a local network. It implements the CastV2 protocol using protobuf messages over TLS, with mDNS/DNS-SD discovery. The CLI, built with Cobra, exposes commands for status, playback, volume, text-to-speech, and a terminal UI; the same functionality is available programmatically through the application and cast packages.

RATING: 7.3/10 MAINT: active DRIFT: medium
▸ 2 reusable components found
volcengine/volc-sdk-python ★ 204 36 APPLICATION

volc-sdk-python is the official Volcengine SDK for Python, a programmatic client library for Volcengine cloud services. It is not a standalone application: it exposes service classes that wrap REST APIs and protobuf-defined services. The dominant architecture is a base Service class that handles credential resolution (AK/SK, environment variables, ~/.volc/config), request signing, and HTTP dispatch, while each service defines an api_info mapping from action names to HTTP method/path/query. Some services (TLS, Live) use protobuf-generated models; others use legacy ApiInfo-style raw dicts, creating inconsistent implementation styles across the SDK.

RATING: 7.3/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
MizuchiLabs/mantrae ★ 494 25 APPLICATION

Mantrae is a self-hosted web UI for managing Traefik dynamic configuration, including routers, services, middlewares, entry points, and server transports. The backend is written in Go using ConnectRPC/protobuf for the API layer, sqlc-generated code for SQLite persistence, and a Svelte frontend for the user interface. It provides CRUD and operational workflows for Traefik resources, DNS providers, users, agents, backups, and profiles. The README explicitly states that development has moved to Tether, making this project superseded. The codebase is a monorepo with large amounts of generated protobuf and sqlc code committed alongside hand-written service logic. It uses modern tooling such as buf, sqlc, goreleaser, and ko, but has no visible tests, some incomplete documentation, and a minimal OpenAPI spec. The UI includes generic data table components with sorting, filtering, pagination, and bulk actions. Overall, it is a functional but unremarkable application with moderate maintainability and limited reuse potential outside its own architecture.

RATING: 5.5/10 MAINT: deprecated DRIFT: medium
▸ 2 reusable components found
── end of results ──
$ submit: