linkerd-tcp
convey
linkerd-tcp | convey | |
---|---|---|
1 | 2 | |
524 | 330 | |
0.2% | - | |
0.0 | 0.0 | |
11 months ago | almost 3 years ago | |
Rust | Rust | |
Apache License 2.0 | MIT License |
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.
linkerd-tcp
-
Announcing Linkerd's CNCF Graduation
A few years later, we found that the ecosystem had grown a bit--specifically Tokio--the core async networking framework--and Hyper--an extremely fast HTTP client/server implementation built on Tokio. We used these to build a relatively simple TCP proxy for the Linkerd 1.x ecosystem (linkerd-tcp). This gave us enough confidence to start investing more heavily in Rust.
convey
-
Rust went from side project to world’s fastest growing language
Few years back, Convey[1] has apparently outran HAProxy in an alleged benchmark by the author[2]. That's a one man project (now abandoned, sadly) outrunning a decade old product built by an enterprise company AND a big community AND spearheaded and designed by a data structure genius. Granted, only in one of many tricks HAProxy can pull, but still. Not a database but indeed a concurrent world-facing RealWork software. If true (didn't actually check myself), I'd say it fits your bill.
Personally, I read that as "can be as fast as, but without you having to be Willy Tarreau level genius" which is all I need.
It's easier/more-intuitive to do a lot of things in C++, but safe, high performing C++ is certainly harder than safe, high performing Rust for huge swaths of use-cases. Also, as has been mentioned, its type system that benefitted from the PL research since the 80s also allows for nicer expression of business logic. In particular, this means that in Rust, unlike C, Go, or even C++ in great part, you are not writing in the same low-level intricate language at every level of your stack i.e. it can be a nicer high-level experience the higher you go if you designed your lower tiers well.
And that last thing to me is the biggest advantage it has over the competition.
Off course, there is also the fact that juggling dependencies in a non-trivial C++ project was a nightmare until recently with vcpkg and it's manifest mode and that will take probably another decade to become commonplace in the ecosystem (if ever).
[1]: https://github.com/bparli/convey
-
What's everyone working on this week (23/2022)?
custom domain-specific load balancer based on convey code (https://github.com/bparli/convey)
What are some alternatives?
tokio - A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...
gcpp - Experimental deferred and unordered destruction library for C++
mux-rust - An implementation of the Mux protocol in Rust.
getargs - A truly zero-cost argument parser for Rust
tunneler - Tunnel TCP or UDP traffic over TCP, (mutual) TLS or DNS (authoritative server or direct connection), implemented in Rust
rust-beginner-projects - Rust projects for beginners to familiarise themselves with rust
hyper - An HTTP library for Rust