Rust's async isn't F# king colored

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

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.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • untokio

    pretend tokio doesn't exist

  • rfcs

    RFCs for changes to Rust

  • Rust was originally built with green threads. The RFC that proposed removing them has an extremely detailed explanation of why the change was made pre-1.0: https://github.com/rust-lang/rfcs/blob/0806be4f282144cfcd55b...

    I think this has proven itself to be the right decision. It's one of the main reasons that Rust works so well alongside other languages—there's very little default Rust runtime that complicates interop. There are also lots of programming scenarios for which green threads are not the right tool, and Rust accommodates those.

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

    General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.

  • I tend to agree that allocator param isn't that strong of an argument (e.g. one can easily just store a pointer to the allocator in a struct to hide it from method signatures). And it is quite valid to just create a local allocator and `defer a.free(thing)` to clean up at the end of a function (for example, if you just need a trivial std.mem.join and you know that you can fit the result in stack). One does not need to use the top-level GPA/arena for everything.

    But nonetheless I think there is a split (at least for now). Zig async function frames are different than regular functions, so even if syntactically, `foo()` could magically be switched between sync or async based on io_mode, in practice if you have a recursive call tree doing fs operations, it'll work in one mode (up until a stack overflow, that is) and throw a compile error upfront in the other. Presumably this would not be an issue anymore once [0] is implemented.

    [0] https://github.com/ziglang/zig/issues/1006

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

  • When Zig is safer and faster than (unsafe) Rust

    3 projects | /r/rust | 7 Mar 2023
  • I've been learning Rust for 3 days and this is my first impression

    4 projects | /r/ProgrammerHumor | 5 Mar 2023
  • Linus Torvalds: Rust For The Kernel Could Possibly Be Merged For Linux 5.20

    4 projects | /r/programming | 21 Jun 2022
  • Asynchronous Clean-Up (in Rust)

    5 projects | news.ycombinator.com | 25 Feb 2024
  • New Linux glibc flaw lets attackers get root on major distros

    7 projects | news.ycombinator.com | 4 Feb 2024