Async Rust is not safe with io_uring

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

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. frr

    The FRRouting Protocol Suite

    I don't think it's possible to get away with fundamentally no cancellation support, there are enough edge cases that need it even if most applications don't have such edge cases.

    FWIW, this was also painful to do in our C event loop, but there was no way around the fact that we needed it (cf. https://github.com/FRRouting/frr/blob/56d994aecab08b9462f2c8... )

  2. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  3. containerd

    An open and reliable container runtime

    Notably, io_uring syscall has been a significant source of vulnerabilities. Last year, Google security team decided to disable it in their products (ChromeOS, Android, GKE) and production servers [1].

    Containerd maintainers soon followed Google recommendations and updated seccomp profile to disallow io_uring calls [2].

    io_uring was called out specifically for exposing increased attack surface by kernel security team as well long before G report was released [3].

    Seems like less of a rust issue and more of a bug(s) in io_uring? I suppose user space apps can provide bandaid fix but ultimately needs to be handled at kernel.

    [1] https://security.googleblog.com/2023/06/learnings-from-kctf-...

    [2] https://github.com/containerd/containerd/pull/9320

    [3] https://lwn.net/Articles/902466/

  4. ringbahn

    safe bindings to io-uring

    This is nothing to do with async Rust; monoio (and possibly other io-uring libraries) are just exposing a flawed API. My ringbahn library written in 2019 correctly handled this case by having a dropped accept future register a cancellation callback when the accept completes.

    https://github.com/ringbahn/ringbahn

  5. the ideal scenario is like cancellable io provide by monoio, I write an example of this in the blog: https://github.com/ethe/io-uring-is-not-cancellation-safe/bl... . However, it has lots of limitation, and do not have a perfect way to do this at the moment.

  6. book

    Documentation on how to use the Rust Programming Language to develop firmware for bare metal (microcontroller) devices (by rust-embedded)

    I guess that would be the book: https://docs.rust-embedded.org/book/

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

  • Show HN: A portable hash map in C

    4 projects | news.ycombinator.com | 8 Dec 2024
  • Type-erased generic functions for C: A modest non-proposal

    2 projects | news.ycombinator.com | 3 Oct 2024
  • Advice for a high school networking lab

    1 project | /r/networking | 21 Mar 2023
  • Flush BGP table faster

    1 project | /r/networking | 10 Sep 2022
  • I think I suck at Networking

    2 projects | /r/devops | 16 Aug 2022