shared-string
Split a string without another allocation (by soerenmeier)
prost
PROST! a Protocol Buffers implementation for the Rust Language (by danburkert)
shared-string | prost | |
---|---|---|
1 | 5 | |
2 | 26 | |
- | - | |
0.0 | 0.0 | |
about 3 years ago | over 1 year 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.
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
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
What are some alternatives?
When comparing shared-string and prost you can also consider the following projects:
prost - PROST! a Protocol Buffers implementation for the Rust Language
tonic - A native gRPC client & server implementation with async/await support.
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.