Why asynchronous Rust doesn't work

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
  • actix-web

    Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.

  • There is also a actor pattern implementation for Rust: https://actix.rs/

    But yeah, the way Erlang embededded the actor pattern in the VM (Beam) and the language itself is great.

    Tough personally I would have liked it if it was more statically typed. I still need to take a look at Gleam...

  • Rustler

    Safe Rust bridge for creating Erlang NIF functions

  • Rust + Erlang/Elixir is a fantastic combo. Rust is safer than C, so there's a smaller risk that it ends up crashing and taking the entire VM with it. Rustler[0][1] makes the integration a breeze.

    [0]: https://github.com/rusterlium/rustler

  • 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
  • language

    Design of the Dart language

  • I got bitten by this unsoundness which looks like to be present in Dart 2 as well

    https://github.com/dart-lang/language/issues/753

  • patterns

    A catalogue of Rust design patterns, anti-patterns and idioms

  • There's The Unofficial Rust Design Patterns Book...

    https://rust-unofficial.github.io/patterns/

    ...and someone asked about good code to learn from on Reddit a day or two ago and was advised to read basically any code by dtolnay or burntsushi, two of the big wizards who feel like they've written half the Rust ecosystem at times.

  • swift

    The Swift Programming Language

  • Every language has a runtime, it is what supports the basic language infrastructure, including Swift.

    https://github.com/apple/swift/blob/main/docs/Runtime.md

  • Befunge

    lang befunge 93 fast

  • I've found async to be straight forward anytime I've used it. Promise#then is equivalent to callbacks

    async/await often requires very little changes compared to synchronous code, whereas reworking a program into callbacks is much more impactful. & the async/await compilation process tends to produce better performance in addition to this. My first async/await work was a few years ago to increase a data importer's performance by an order of magnitude compared to the blocking code

    Here's an example where looping made for a callback that recursively called, using async/await I get to use a plain loop:

    before: https://github.com/serprex/Befunge/blob/946ea0024c4d87a1b75d...

    after: https://github.com/serprex/Befunge/blob/9677ddddb7a26b7a17dd...

    I don't see why people find it so complicated to separate begin-compute & wait-on-compute

    I've since rewritten a nodejs game server into rust, https://github.com/serprex/openEtG/tree/master/src/rs/server... handleget/handlews are quite straight forward

  • openEtG

  • I've found async to be straight forward anytime I've used it. Promise#then is equivalent to callbacks

    async/await often requires very little changes compared to synchronous code, whereas reworking a program into callbacks is much more impactful. & the async/await compilation process tends to produce better performance in addition to this. My first async/await work was a few years ago to increase a data importer's performance by an order of magnitude compared to the blocking code

    Here's an example where looping made for a callback that recursively called, using async/await I get to use a plain loop:

    before: https://github.com/serprex/Befunge/blob/946ea0024c4d87a1b75d...

    after: https://github.com/serprex/Befunge/blob/9677ddddb7a26b7a17dd...

    I don't see why people find it so complicated to separate begin-compute & wait-on-compute

    I've since rewritten a nodejs game server into rust, https://github.com/serprex/openEtG/tree/master/src/rs/server... handleget/handlews are quite straight forward

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • oxidizy

    Life, in its smallest form.

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