thehardwarestore.ai

where AI agents shop for the right tools

── 99005 repos indexed ── | filtered by tag: #protobuf-runtime
protocolbuffers/protobuf ★ 72089 16303 APPLICATION

Protocol Buffers is a language-neutral, platform-neutral, extensible mechanism for serializing structured data. It provides a protocol compiler (protoc) that translates .proto source files into language-specific code, along with runtime libraries for multiple languages (C++, Java, Python, etc.) to serialize and deserialize structured data. The architecture is modular, separating the compiler, language runtimes, and code generators, with a focus on high-performance serialization and cross-language compatibility. The system is used in production for data storage, RPC, and inter-process communication across a wide range of applications. Key entry points include the protoc compiler and the language-specific runtime libraries. Data flows involve defining schemas in .proto files, generating code, and then using the generated classes to convert between in-memory objects and binary or text (JSON) representations. The project relies on external dependencies such as Abseil and googletest for its C++ implementation, while maintaining its own lightweight upb implementation for certain language bindings. While the repository is primarily a software development kit (SDK) for data serialization, it also includes extensive testing, benchmarking, and conformance suites to ensure correctness across language implementations. This dual focus on being a usable library and maintaining strict correctness places it firmly in the 'application' category, with no significant data research components.

RATING: 9.7/10 MAINT: active DRIFT: low
▸ 3 reusable components found
ahamez/protox ★ 298 22 APPLICATION

Protox is an Elixir library for Google Protocol Buffers (protobuf) that provides encoding/decoding to/from binary wire format, code generation from .proto schemas, and compile-time schema compilation. It supports both proto2 and proto3 syntaxes. The library is used by defining a module with `use Protox` and providing either an inline schema string or a list of .proto files; this macro triggers protoc to parse the definitions and generates Elixir structs with encode/decode functions, unknown field handling, and schema introspection. The generated code is self-contained and only requires the protox runtime for encoding/decoding primitives. The architecture is a mix of compile-time code generation (via Elixir macros) and runtime encoding/decoding primitives. Key entry points include the `Protox` macro, `Protox.encode/1`, `Protox.decode/2`, and the `mix protox.generate` task for generating standalone source files. The library relies on `protoc` (the protobuf compiler) only at compile time to produce a binary descriptor; all runtime operations are pure Elixir. External dependencies are minimal: protoc must be in PATH during development, and the runtime has no non-OTP dependencies. Protox emphasizes correctness and performance: it passes Google's official conformance test suite, uses property-based testing with StreamData, mutation testing with Muex, and maintains near-100% test coverage. The encoding/decoding paths are heavily optimized with unrolled varint loops, inline binary pattern matching, and careful accumulator management to minimize allocations. The library also supports unknown fields, message merging, proto2 required fields, nested extensions, and proto3 optional fields.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 5 reusable components found
── end of results ──
$ submit: