The State of Async Rust

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

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

    Empowering everyone to build reliable and efficient software.

  • async traits are in the process of being stabilized: https://github.com/rust-lang/rust/pull/115822

    Also, impl trait projections (ability to use Self::Foo associated types in async functions in traits): https://github.com/rust-lang/rust/pull/115659

  • website

    Website for the Tokio project (by tokio-rs)

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

    This repository has examples of broken patterns in ASP.NET Core applications

  • No it doesn't, hence why there are best practices guidelines written by the .NET architects, and there was a research project to add Go/Java co-routines as well.

    https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/b...

    https://twitter.com/davidfowl/status/1532880744732758018?lan...

    https://github.com/dotnet/runtimelab/issues/2057

    https://github.com/dotnet/runtimelab/issues/2398

  • runtimelab

    This repo is for experimentation and exploring new ideas that may or may not make it into the main dotnet/runtime repo. (by davidwrighton)

  • Yes it does. Those best practices are very easy to follow and are enforced by analyzers. I have never encountered those issues on a recent big project I worked on, although they were common in the past when async was new. Also the green threads research concluded that it's not worth adding it to NET:

    https://github.com/davidwrighton/runtimelab/blob/report/docs...

  • telepathy-qt

    Telepathy Qt bindings

  • smol

    A small and fast async runtime for Rust

  • My understanding is you always need a runtime, somethings needs to drive the async flow. But there are others on the market, just not without the.. market domination... of tokio.

    https://github.com/smol-rs/smol looks promising simply for being minimal

    https://github.com/bytedance/monoio looks potentially easier to work with than tokio

    https://github.com/DataDog/glommio is built around linux io_uring and seems somewhat promising for performance reasons.

    I haven't played with any of these yet, because Tokio is unfortunately the path of least resistance. And a bit viral in how it's infected tings.

  • monoio

    Rust async runtime based on io-uring.

  • My understanding is you always need a runtime, somethings needs to drive the async flow. But there are others on the market, just not without the.. market domination... of tokio.

    https://github.com/smol-rs/smol looks promising simply for being minimal

    https://github.com/bytedance/monoio looks potentially easier to work with than tokio

    https://github.com/DataDog/glommio is built around linux io_uring and seems somewhat promising for performance reasons.

    I haven't played with any of these yet, because Tokio is unfortunately the path of least resistance. And a bit viral in how it's infected tings.

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

    Glommio is a thread-per-core crate that makes writing highly parallel asynchronous applications in a thread-per-core architecture easier for rustaceans.

  • My understanding is you always need a runtime, somethings needs to drive the async flow. But there are others on the market, just not without the.. market domination... of tokio.

    https://github.com/smol-rs/smol looks promising simply for being minimal

    https://github.com/bytedance/monoio looks potentially easier to work with than tokio

    https://github.com/DataDog/glommio is built around linux io_uring and seems somewhat promising for performance reasons.

    I haven't played with any of these yet, because Tokio is unfortunately the path of least resistance. And a bit viral in how it's infected tings.

  • embassy

    Modern embedded framework, using Rust and async.

  • > not good for embedded

    embassy begs to differ

    https://embassy.dev/

    async/await is really just a syntax for building state machines in a way that resembles regular code. It's compiled down to the same code that you would write by hand anyway (early on it had some bloat in state size but I think it's all fixed now).

    And embedded has a lot of state machines!

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