min-sized-rust VS Rust-for-Linux

Compare min-sized-rust vs Rust-for-Linux and see what are their differences.

min-sized-rust

🦀 How to minimize Rust binary size 📦 (by johnthagen)

Rust-for-Linux

Adding support for the Rust language to the Linux kernel. (by Rust-for-Linux)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
min-sized-rust Rust-for-Linux
101 79
7,301 3,769
- 1.9%
6.2 0.0
12 days ago 4 days ago
Rust C
MIT License GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

min-sized-rust

Posts with mentions or reviews of min-sized-rust. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-18.

Rust-for-Linux

Posts with mentions or reviews of Rust-for-Linux. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-18.
  • The Linux Kernel Prepares for Rust 1.77 Upgrade
    9 projects | news.ycombinator.com | 18 Feb 2024
    At least according to the Github's language breakdown for https://github.com/Rust-for-Linux/linux, C is still 98.3% of the repository, and Rust is in the 0.1% of "others".
    9 projects | news.ycombinator.com | 18 Feb 2024
    Rust is backwards compatible when you stick to stable features, but the kernel uses unstable features that can and do incur breaking changes.

    https://github.com/Rust-for-Linux/linux/issues/2

  • Mark Russinovich: “Working towards enabling Windows driver development in Rust”
    7 projects | news.ycombinator.com | 23 Sep 2023
    > How would this work?

    Don't know exactly what you're asking.

    > And why would it be a better idea?

    Poorly written device drivers are a significant attack vector. It's one of the reasons Linux is now exploring using Rust for its own device drivers.[0] You may be asking -- why Rust and not some other language? Rust has many of the performance and interoperability advantages of C and C++, but as noted, makes certain classes of memory safety issues impossible. Rust also has significant mindshare among systems programming communities.

    [0]: https://rust-for-linux.com

  • The Linux Kernel Module Programming Guide
    2 projects | news.ycombinator.com | 1 May 2023
    Ctrl-F "rust"

    https://rust-for-linux.com/ links to LWN articles at https://lwn.net/Kernel/Index/#Development_tools-Rust that suggest that only basic modules are yet possible with the rust support in Linux kernels 6.2 and 6.3.

    Rust-for-linux links to the Android binder module though:

    > Android Binder Driver: This project is an effort to rewrite Android's Binder kernel driver in Rust.

    > Motivation: Binder is one of the most security and performance critical components of Android. Android isolates apps from each other and the system by assigning each app a unique user ID (UID). This is called "application sandboxing", and is a fundamental tenet of the Android Platform Security Model.

    > The majority of inter-process communication (IPC) on Android goes through Binder. Thus, memory unsafety vulnerabilities are especially critical when they happen in the Binder driver

    ... "Rust in the Linux kernel" (2021) https://security.googleblog.com/2021/04/rust-in-linux-kernel... :

    > [...] We also need designs that allow code in the two languages to interact with each other: we're particularly interested in safe, zero-cost abstractions that allow Rust code to use kernel functionality written in C, and how to implement functionality in idiomatic Rust that can be called seamlessly from the C portions of the kernel.

    > Since Rust is a new language for the kernel, we also have the opportunity to enforce best practices in terms of documentation and uniformity. For example, we have specific machine-checked requirements around the usage of unsafe code: for every unsafe function, the developer must document the requirements that need to be satisfied by callers to ensure that its usage is safe; additionally, for every call to unsafe functions (or usage of unsafe constructs like dereferencing a raw pointer), the developer must document the justification for why it is safe to do so.

    > We'll now show how such a driver would be implemented in Rust, contrasting it with a C implementation. [...]

    This guide with unsafe rust that calls into the C, and then with next gen much safer rust right next to it would be a helpful resource too.

    What of the post-docker container support (with userspaces also written in go) should be cloned to rust first?

  • The state of Flatpak security: major Projects are the worst?
    3 projects | /r/flatpak | 20 Feb 2023
    Rust-for-Linux issue tracker
  • rust devs in a nutshell
    2 projects | /r/ProgrammerHumor | 14 Feb 2023
  • Rustproofing Linux (Part 1/4 Leaking Addresses)
    2 projects | /r/rust | 10 Feb 2023
    Also, there already exists both issue: https://github.com/Rust-for-Linux/linux/issues/479
    2 projects | /r/rust | 10 Feb 2023
    Yes, I definitely agree that it's a problem that pr_info implicitly wraps its arguments in unsafe {}. I wrote my own Pull Request with a trival fix.
  • how to compile a rust "hello world" with kernel 6.1?
    2 projects | /r/rust | 23 Dec 2022
    Note that this template won't work with Linux 6.1, which has very minimal Rust support. You'll want the RustForLinux tree, or maybe Linux 6.2.
  • Rust in the 6.2 Kernel
    2 projects | news.ycombinator.com | 18 Nov 2022
    > Also we’re bringing NPM style supply chain problems to the kernel now?

    Nope. They've thought that through.

    (In fact, cargo is only used to build test helpers. https://github.com/Rust-for-Linux/linux/blob/rust/Documentat...)

What are some alternatives?

When comparing min-sized-rust and Rust-for-Linux you can also consider the following projects:

jakt - The Jakt Programming Language

smartstring - Compact inlined strings for Rust.

gccrs - GCC Front-End for Rust

rfcs - RFCs for changes to Rust

dafny - Dafny is a verification-aware programming language

rustig - A tool to detect code paths leading to Rust's panic handler

koka - Koka language compiler and interpreter

PrawnOS - Libre Mainline Kernel and Debian for arm laptops

btleplug - Rust Cross-Platform Host-Side Bluetooth LE Access Library

c2rust - Migrate C code to Rust

rustc_codegen_gcc - libgccjit AOT codegen for rustc

Cargo - The Rust package manager