#validation #generated #byte #protobuf #define #traits #proto

penumbra-sdk-proto

Bindings and extension traits for Penumbra protobufs

1 unstable release

new 0.82.0-alpha.0 Dec 26, 2024

#2057 in Encoding

MIT/Apache

4.5MB
97K SLoC

Protobuf definitions for Penumbra.

This crate only contains the .proto files and the Rust types generated from them. These types only handle parsing the wire format; validation should be performed by converting them into an appropriate domain type, as in the following diagram:

┌───────┐          ┌──────────────┐               ┌──────────────┐
│encoded│ protobuf │penumbra_sdk_proto│ TryFrom/Into  │ domain types │
│ bytes │<──wire ─>│    types     │<─validation ─>(other crates)│
└───────┘  format  └──────────────┘   boundary    └──────────────┘

The DomainType marker trait can be implemented on a domain type to ensure these conversions exist.

Dependencies

~29–49MB
~1M SLoC