{"repo":"celer-network/pb3-gen-sol","free":true,"listed":false,"github":"https://github.com/celer-network/pb3-gen-sol","clone":"git clone https://github.com/celer-network/pb3-gen-sol.git","description":"Generate solidity decoders from proto3 files","language":"Solidity","stars":16,"topics":["solidity","protobuf"],"license":"GPL-3.0","category":"blockchain-web3","readme_excerpt":"pb3-gen-sol pb3-gen-sol is a protoc plugin that generates Solidity protobuf decoders for proto3 schemas. The generator targets Solidity =0.8.0 , emits a shared Pb.sol runtime, and supports the field-option-based Solidity type mappings used by Celer contracts. Features - Proto3 decoder generation for top-level messages and enums. - Cross-package reference support, including multi-segment proto package names. - Separate Pb.sol runtime support library. - Solidity native type overrides via google.protobuf.FieldOptions and (soltype) . - Foundry-based Solidity regression suite, with binary .pb fixtures regenerated from checked-in human-readable .textpb sources. - Go integration test that builds the plugin and runs protoc end to end. - Go unit tests covering generator parameter parsing and soltype option handling. Why protobuf for Solidity? If your off-chain stack already speaks protobuf — multiple producer languages writing the same signed bytes, schema evolution managed via tag numbers — pb3-gen-sol lets on-chain Solidity contracts consume the same payloads without hand-rolling ABI structs or duplicating the schema. The trade-off vs hand-rolled Solidity ABI: - Language- and platform-neutral. Any client (Go, Rust, TS, Java, etc.) can produce .pb bytes that decode on EVM (this repo), non-EVM chains (CosmWasm, Move, Solana programs with protobuf libraries), or any off-chain verifier — all from one schema. - Native schema evolution. Adding fields with new tag numbers is safe; older de","default_branch":null,"files":null,"tree":[],"storefront":"/r/celer-network","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/celer-network/pb3-gen-sol/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}