tokio-rs/prost

PROST! a Protocol Buffers implementation for the Rust Language

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 27 minutes ago
Added to GitGenius on September 14th, 2026
Created on June 13th, 2017
Open Issues & Pull Requests: 241 (+0)
GitHub issues: Enabled
Number of forks: 641
Total Stargazers: 4,770 (+0)
Total Subscribers: 34 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 8.2 days
Mean response time: 141.2 days
90th percentile: 404.6 days
Tracked items: 97

Most active contributors

Sign in to see contributor activity.

How this project is maintained

99% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Three people close 80% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 81
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 930 days
Stale 30+ days: 80
Stale 90+ days: 70

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • help wanted (11)
  • enhancement (5)
  • bug (1)
  • question (1)
  • waiting for response (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Prost is a Protocol Buffers implementation for the Rust language that generates simple, idiomatic Rust code from proto2 and proto3 files.

Prost solves the problem of serializing and deserializing structured data in Rust by generating code that takes advantage of Rust's type system and idioms. Rather than producing verbose or unsafe code, it generates readable Rust structs with derive attributes, preserves comments from proto files in the generated output, and uses the bytes crate's Buf and BufMut abstractions for efficient serialization. The tool also allows existing Rust types to be serialized and deserialized by adding attributes, respects Protobuf package specifiers when organizing generated code into Rust modules, and preserves unknown enum values during deserialization.

Prost suits projects that need Protocol Buffers support in Rust and value clean, maintainable generated code. It is particularly useful when you want generated code to feel native to Rust rather than like a translation from another language. The project explicitly does not include runtime reflection or message descriptors, so it is not suitable for use cases requiring dynamic message inspection. Adoption requires protoc to be installed separately on your system, as the tool no longer provides bundled or auto-compiled versions. The project maintains a rolling minimum supported Rust version policy of at least six months.

The project maintains active engagement with pull requests and issues, regularly merging contributions and responding to user feedback. Development follows a structured approach to versioning and compatibility, with clear documentation of breaking changes and migration paths. The maintainers prioritize keeping the generated code simple and idiomatic rather than adding complex features, as evidenced by the deliberate exclusion of runtime reflection capabilities.