Rustaceans at the Border [Linux Kernel]

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

    Coordination repository for the Secure Code Working Group (by rust-secure-code)

  • For other repro curious readers, this seems like a good entry point to follow reproducibility efforts: https://github.com/rust-secure-code/wg/issues/28

  • gccrs

    GCC Front-End for Rust

  • Wat?

    Rust has been a very stable language since Rust 1.0. They have a stellar record of keeping things working - with most code breaking being due to said code invoking UB. The edition system is a brilliant invention that allows evolving the language _without_ causing an ecosystem split. Thanks to this, Rust ends up having a much better stability story than even C++ (for whom you can't really mix and match different C++ versions).

    The bootstrapping situation is really not that bad? We have mrustc (A C++ rust->C transpiler) which allows compiling modern versions of rustc (latest supported rustc version being 1.54), which we can then iteratively bootstrap from up to the latest version. And things are getting better, with gccrs[0] in particular promising a rust frontend for GCC, written in C.

    As for the "curl something|bash", I suppose you're talking about rustup. You're free to download the script, and review it before installing it. And rust is also distributed many different ways. At least `curl something|bash` does not require root account, unlike `sudo apt install`, which can be very convenient. Like all things: Multiple options are generally better.

    [0] https://github.com/Rust-GCC/gccrs

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

    The Rust package manager

  • I might be misreading this on an iphone screen but as i follow the logic here: https://github.com/rust-lang/cargo/blob/a77ed9ba87bfeaf3c275...

    A cargo build ends up there calling into the resolver’s resolve_ws_with_opts() which would refresh the lockfile.

    Not resolve_with_previous() which would use the lock file as-is.

    The only reason this sticks in my mind is i ran into an issue building bat after i made some changes, i obviously assumed it was my changes so went through the process of debugging and backing out my changes until finally i was back to a virgin branch and still failing - passing —frozen —locked fixed it.

  • Rust-for-Linux

    Adding support for the Rust language to the Linux kernel. (by Rust-for-Linux)

  • While I agree that these are problems (and, they are being addressed), none of these problems are ones that have to do with Rust in Kernel. The developers actually keep a wishlist of Rust/libstd/libcore/tooling features they consider helpful: https://github.com/Rust-for-Linux/linux/labels/prio%3A%20met...

  • kerla

    A new operating system kernel with Linux binary compatibility written in Rust.

  • > How would that work in reality? Re-use the existing tests to build a new kernel from scratch? Sounds like a very far-out idea that wouldn't help with any of the current problems, but I'm happy to entertain the idea and hear your reasoning here.

    While I would tend to agree that a full production replacement would be such a massive undertaking as to be impractical, https://github.com/nuta/kerla does something very like that - Linux userspace ABI on an all-new Rust kernel. (And even at this small scale, I find it mind-blowing that this worked)

  • crates.io

    The Rust package registry

  • A couple of things addressing points from different part in this thread:

    - Archiving the complete history of all crates in crates.io is perfectly feasible today for an individual. Over time that might change.

    - Setting up a mirror is straightforward, should you want to do so: https://github.com/rust-lang/crates.io/blob/master/docs/MIRR...

    - crates.io is financed by the Rust Foundation and is at no risk of disappearing, it is a very well funded effort.

    - Using cargo with an alternative repo is not difficult, requires some one-time configuration.

    - Vendoring your dependencies is supported.

    - cargo hits the network to look for semver compatible updated versions of your dependencies on specific moments if you don't have a Cargo.lock file.

    - Not updating your dependencies stops you from getting the rug pulled from under you if an unwanted change happens, but it also stops you from getting any desired changes including security vulnerability fixes.

    - Even if you vendor all of your dependencies, you still have to audit them the first time and every time you update them. Are you? Most aren't. Code you haven't written yourself can't be assured not to be malicious, and code you've written yourself can still have exploitable mistakes.

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

  • A C Programmers take on Rust.

    6 projects | /r/rust | 9 Sep 2022
  • Memory Safety for the World’s Largest Software Project

    4 projects | news.ycombinator.com | 26 Jun 2022
  • [RFC] Rust support for Linux Kernel

    9 projects | /r/rust | 14 Apr 2021
  • RFC that adds support for Rust to the Linux kernel

    2 projects | news.ycombinator.com | 14 Apr 2021
  • Surprisingly Powerful – Serverless WASM with Rust Article 1

    5 projects | dev.to | 27 Apr 2024