-
Notifications
You must be signed in to change notification settings - Fork 29
Review general protocol implementations #28
Comments
I know of at least 3 gRPC implementations:
I know some people are fairly involved already in tower-grpc. On the one hand the work pingcap did wrapping the official gRPC C core makes a lot of sense and provides a decent way to stay up to date with gRPC. On the other it is not a showcase for Rust really (not sure if that is a goal or not). There are many challenges to gRPC outside of the networking part including protubuf support for Rust, code generation for service stubs, etc. In my opinion the goal for a gRPC library in Rust should be to gain official support by the gRPC project and be incorporated into that ecosystem. Most languages are wrappers around the C core but there are exceptions (grpc-java and grpc-go are completely written in their respective languages). Being officially recognized as part of the gRPC project would go a long way to breaking down barriers to adopting Rust by companies looking to use Rust for network services/gRPC. I know at one time the gRPC maintainers indicated they would be willing to pull a high enough quality implementation into the main repo, not sure if their stance is the same or not. |
HTTP/2Known Rust ImplementationsA list of known implementations include:
Out of all the HTTP/2 implementations h2 seems to currently be getting the most traction. Other Noteworthy ImplementationsThe nghttp2 C library is used in both cURL and Node.js. As of January 2018 it seemed that while nginx supports HTTP/2 for egress, it did not support it for the connections it was proxying (e.g. it could not speak HTTP/2 to the servers "behind nginx"). A complete list of known HTTP2 implementations can be found on the http2-spec wiki. HTTP/2 PushThe HTTP/2 spec adds support for While HTTP/2 push support in Author's note: after reading the HTTP/2 spec I was under the impression that Useful Links
Author's note: HTTP/2 is still actively worked on. I'm personally most excited for the cache-digest and websockets extensions. ConclusionI hope this provides a rough overview of the available HTTP/2 libraries in Rust, links to the current HTTP/2 specifications, and an overview on the state of HTTP/2 push support in Rust. I did not dive deeper into specifics of how Rust's HTTP/2 story stacks up against other languages, did notengage further on the steps required to improve Rust's HTTP/2 support I'm hoping this turns out to be somewhat useful. I for one am very excited to have complete HTTP/2 support in Rust! Thanks! |
KafkaI know of 3 implementations:
Personal experiencekafka-rs is ok, but doesn't support newer protocol versions which are much more efficient (better compression, etc). |
Collect info on Rust implementations of protocols like http, http/2, grpc, thrift, and so on. What is the status of each?
The text was updated successfully, but these errors were encountered: