prost
PROST! a Protocol Buffers implementation for the Rust Language (by danburkert)
shared-string
Split a string without another allocation (by soerenmeier)
prost | shared-string | |
---|---|---|
5 | 1 | |
26 | 2 | |
- | - | |
0.0 | 0.0 | |
over 1 year ago | almost 3 years ago | |
Rust | Rust | |
Apache License 2.0 | Apache License 2.0 |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
prost
Posts with mentions or reviews of prost.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-05-15.
-
Six Years of Rust
Interesting, aren't the community-driven crates for these areas satisfactory enough? There's PROST and tonic, and quite well-used. I don't know about Bazel though, but I found this. Feel free to correct me on this subject, I admit I don't know that much about it.
-
Saving Some Allocations
This is great to see! I originally opened a PR for some `bytes` support in prost a while back because we had a HTTP/Protobuf proxy (using hyper & prost) where wanted to reduce memory usage.
- How to share .proto messages across multiple microservices?
- PROST! (A Protocol Buffers Implementation) v0.7.0 released, including no_std & zero-copy deserialization
-
I published my first crate: varint-simd - SIMD-accelerated varint encoder and decoder in Rust
[2]: https://github.com/danburkert/prost/blob/master/benches/varint.rs
shared-string
Posts with mentions or reviews of shared-string.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-01-31.
-
Saving Some Allocations
A few weeks back i made a crate (shared-string) that more or less does what your describing in your post. But the underlying data structure is, preferably Rc or Arc if you need to use it between threads. I though about using Bytes but if you look at the imlementation it does a lot in the background. But never the less i changed Rc and Arc to Bytes to look how it would performance. When i saw the benchmarks i was discouraged, they weren't great. In my benchmark it was always slower than just using a String. Maybe somewhere i made a mistake or the benchmarks are not the right ones. Here the bytes implementation with some benchmark results: https://github.com/soerenmeier/shared-string/pull/1
What are some alternatives?
When comparing prost and shared-string you can also consider the following projects:
tonic - A native gRPC client & server implementation with async/await support.
prost - PROST! a Protocol Buffers implementation for the Rust Language
varint-simd - Decoding and encoding gigabytes of LEB128 variable-length integers per second in Rust with SIMD
cargo-raze - Generate Bazel BUILD from Cargo dependencies!
rust - Empowering everyone to build reliable and efficient software.
linkerd2-proxy-api - A service mesh for Kubernetes and beyond. gRPC API bindings repo for Linkerd 2.x.
linkerd2-proxy - A purpose-built proxy for the Linkerd service mesh. Written in Rust.