Rust went from side project to world’s fastest growing language

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • rust

    Empowering everyone to build reliable and efficient software.

  • >Also, it is humorous to me to see blog posts that say, "[Rust feature that causes inconvenience] enables compilers to do [compiler optimization that C++ compilers already do]."

    What? You can't safely do strict aliasing in C++ and even if you did, it was broken anyway to the point where the Rust compiler had to disable it because of LLVM bugs.

    https://github.com/rust-lang/rust/issues/54878#issuecomment-...

    https://news.ycombinator.com/item?id=25624538

  • cargo-script-mvs

    Pre-RFC for merging cargo-script into cargo

  • > A) is easy to write one off scripts that do a job fast, with minimal thinking and effort. I am thinking of Python and Ruby. For me I can write code with high velocity in these languages.

    Once I wrap up some other projects, I plan to explore this space a little bit within Rust.

    imo the biggest bang for the buck is just having good `#!` support. Probably mid-year I expect to have a Pre-RFC up for single-file cargo packages. See https://github.com/epage/cargo-script-mvs/discussions/15.

    A bigger effort is a batteries included, non-zero cost stdlib. I've started writing up my thoughts at https://github.com/ergo-rs/ergo.

    For more background on why I think these are important, see https://epage.github.io/blog/2021/09/learning-rust/.

    Would love feedback on these ideas and other ways to make Rust easy to use without sacrificing what makes Rust it is.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • ergo

    std-alternative prototyping / education library (by ergo-rs)

  • > A) is easy to write one off scripts that do a job fast, with minimal thinking and effort. I am thinking of Python and Ruby. For me I can write code with high velocity in these languages.

    Once I wrap up some other projects, I plan to explore this space a little bit within Rust.

    imo the biggest bang for the buck is just having good `#!` support. Probably mid-year I expect to have a Pre-RFC up for single-file cargo packages. See https://github.com/epage/cargo-script-mvs/discussions/15.

    A bigger effort is a batteries included, non-zero cost stdlib. I've started writing up my thoughts at https://github.com/ergo-rs/ergo.

    For more background on why I think these are important, see https://epage.github.io/blog/2021/09/learning-rust/.

    Would love feedback on these ideas and other ways to make Rust easy to use without sacrificing what makes Rust it is.

  • wg-allocators

    Home of the Allocators working group: Paving a path for a standard set of allocator traits to be used in collections!

  • If you self-reference using pointers and guarantee the struct will never move, you don't even need unsafe. If you self-reference using offsets from the struct's base pointer, you need a splash of unsafe but your struct can be freely moved without invalidating its self-referential "pointers".

    Per-struct allocators are a work in progress (see https://github.com/rust-lang/wg-allocators/issues/48).

    Not sure what "non thread local addresses" means, but in my experience Rust is pretty good at sending data between threads (without moving it).

  • gcpp

    Experimental deferred and unordered destruction library for C++

  • There are definitely fringe edge cases where C++ can do things that Rust simply cannot, currently.

    I'm thinking of things like Herb Sutter's deferred_heap (https://github.com/hsutter/gcpp) that give you GC-like abstraction. It's pretty cool that this is possible to write in vanilla C++ with decent ergonomics. I tried to make something similar awhile back and hit a wall in terms of making something that would be pleasant to use.

    Rust has several on-going experiments with making a nice GC, along with good support for arenas. (If you can use arenas, they're great.)

  • convey

    Layer 4 load balancer with dynamic configuration loading (by bparli)

  • 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

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts