A Protocol Buffers implementation for Rust that generates simple, idiomatic Rust code from .proto files.
Prost is a Protocol Buffers implementation for Rust that generates clean, idiomatic Rust code from .proto files. It focuses on correctness and simplicity by leveraging Rust's type system and derive attributes to produce readable types that accurately reflect Protobuf's optional field semantics.
Rust developers working with gRPC services, microservices, or any system requiring efficient serialization and data interchange using Protocol Buffers.
Developers choose Prost for its idiomatic code generation that integrates seamlessly with Rust's ecosystem, its emphasis on safety through explicit Option types for optional fields, and its support for no_std environments, making it suitable for embedded systems.
PROST! a Protocol Buffers implementation for the Rust Language
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Generates clean, readable Rust types using derive attributes, as shown in the example where messages become structs with proper enums and modules.
Retains comments from .proto files in the generated Rust code, improving documentation without extra effort.
Supports embedded systems with feature flags to disable std, allowing use in resource-constrained environments.
Enables serialization of custom Rust types via attributes, so you don't need to generate code for every data structure.
Lacks support for runtime reflection and message descriptors, limiting dynamic use cases like introspection or generic processing.
Marked as passively-maintained with the maintainer not adding new features, which could lead to stagnation or slow bug fixes.
Requires protoc to be installed separately for compilation from v0.11, adding setup complexity compared to bundled solutions.