RFL Patch & Project Registry

February 18, 2025 · View on GitHub

This is an attempt to aggregate Rust abstractions for Linux that have not yet been upstreamed, as well as some leaf drivers and some other works in progress.

Toward the bottom, there is a list of possible projects for anyone looking to pick something up.

PRs or issues are welcome for any additions or fixes!

Patches and Ongoing Projects

Usual status options are:

  • merged: this patch has been merged to upstream and is usable in recent versions of the kernel, or is in a *-next branch for upstreaming.
  • review: this patchset has been submitted to the mailing list and is in a nearly usable state, pending review or other blockers.
  • RFC: this patchset is currently collecting feedback on the mailing list. It is likely not too far off from being upstream ready, but may be blocked on not having an in-tree usecase. (some patchsets that would otherwise be review but do not have an in-tree usecase have been downgraded to RFC even if not an RFC patch).
  • testing: this patchset is generally considered good for further experimentation and may have RFL review, but does not have review by relevant maintainers.
  • experimental: this patchset is a work in progress.
  • abandoned: not recently maintained

Base does not take prerequisites into account, check the git history for more accurate information. A lot of experimental patchsets are against the rust branch, which has a lot of abstractions that are not yet in tree.

For your development, it is best to target rust-next, the *-next branch of the relevant subsystem, or the latest tag at https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git.

Can't find something? Drop by on Zulip, we may be able to point you in the right direction: https://rust-for-linux.zulipchat.com/.

Note that things change frequently! This is a best effort list, PRs or issues are welcome if you notice something out of sync.

Target AreaStatusAuthorGit LinkMailing List LinkBase
AArch64 supportmergedJamie C.https://lore.kernel.org/rust-for-linux/20231020155056.3495121-1-Jamie.Cunliffe@arm.com/merged
Loongarch supportmergedRui W.https://lore.kernel.org/rust-for-linux/20240108032117.215171-1-wangrui@loongson.cn/merged
RISC-V supportreviewConor D.https://lore.kernel.org/rust-for-linux/20240409-unsaddle-skittle-c93eb77732bb@spud/T/#mcc65b9542b54f1813a490fe374cf2333adcc4ec3merged
x86_64 supportmergedmerged
condvarmergedhttps://elixir.bootlin.com/linux/v6.4/source/rust/kernel/sync/condvar.rsmerged
credreviewAlice R.https://lore.kernel.org/rust-for-linux/20240202-alice-file-v4-4-fc9c2080663b@google.com/
cryptoRFCTomo F.https://lore.kernel.org/rust-for-linux/20230615142311.4055228-1-fujita.tomonori@gmail.com/rust-6.5
debugfstestingAdam BK.https://github.com/Rust-for-Linux/linux/pull/885rust
debugfsexperimentalFabien P.https://github.com/Rust-for-Linux/linux/pull/1041rust-next
delaytestingTomo F.https://github.com/Rust-for-Linux/linux/pull/920rust
deviceexperimentalGary G.https://github.com/nbdd0121/linux/tree/device
debugfsexperimentalFabien P.https://github.com/Fabo/linux/tree/fparent/rust-debugfs
driverexperimentalMartin RR., Wedson AF.https://github.com/YakoYakoYokuYoku/linux/commit/36d63c70f80c1f4486423d75dcc5f4b890b10dd4
dmatestingTomo F.https://github.com/Rust-for-Linux/linux/pull/901rust
drmRFCLinahttps://lore.kernel.org/rust-for-linux/20230307-rust-drm-v1-0-917ff5bc80a8@asahilina.net/6.3-rc1
drm-asahi (apple Si)RFCLina, Alyssa R.https://github.com/AsahiLinux/linux/tree/asahi/drivers/gpu/drm/asahihttps://lore.kernel.org/rust-for-linux/20230307-rust-drm-v1-0-917ff5bc80a8@asahilina.net/ (in links)6.6
drm-nova (nouveau rewrite)experimentalDanilo K., Dave A.https://gitlab.freedesktop.org/dakr/novahttps://lore.kernel.org/rust-for-linux/Zfsj0_tb-0-tNrJy@cassiopeiae/
drm-panel, drm-dsiexperimentalFabien P.https://github.com/Fabo/linux/tree/fparent/rust-truly-r63350rust-dev
ethernettestingAméliehttps://github.com/Rust-for-Linux/linux/pull/1014rust
file, miscRFCAlice R., Wedson AF.https://lore.kernel.org/rust-for-linux/20230720152820.3566078-1-aliceryhl@google.com/rust-next
file, miscreviewAlice, Wedson AF.https://lore.kernel.org/rust-for-linux/20240118-alice-file-v3-0-9694b6f9580c@google.com/rust-6.8
fwnodetestingVinay V.https://github.com/Rust-for-Linux/linux/pull/925rust
gpiod/consumerexperimentalFabien P.https://github.com/Fabo/linux/commit/bb525ee7ae4fc0b352442a4853f41d213edd5d30rust-dev
gfp/highmem/pagereviewAlice R.https://lore.kernel.org/rust-for-linux/20240418-alice-mm-v6-0-cb8f3e5d688f@google.com/
hidexperimentalRahul R.https://github.com/Binary-Eater/linux/tree/rust-hidrust-next
i2ctestingFinn B.https://github.com/Rust-for-Linux/linux/pull/946rust
i2cexperimentalFabien P.https://github.com/Fabo/linux/tree/fparent/rust-i2crust-next
io_pgtabletestingLinahttps://github.com/Rust-for-Linux/linux/pull/952/commits/f476b2b052165a40eed0a8fcb86b56f794ee62d8rust-next
io_resourcetestingMaciej F.https://github.com/Rust-for-Linux/linux/pull/682rust
ioctrlmergedhttps://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/rust/kernel/ioctl.rsmerged
jiffiestestingMaria C.https://github.com/Rust-for-Linux/linux/pull/982rust
(rv)kmsrfcLyude Paulhttps://lore.kernel.org/rust-for-linux/20240322221305.1403600-1-lyude@redhat.com/
kuidreviewAlice R.https://lore.kernel.org/rust-for-linux/20240202-alice-file-v4-7-fc9c2080663b@google.com/
mmAlice R., Wedson AF.https://github.com/Darksonn/linux/commit/7ba95d4fc5a8442ef5eb428b64109116717f7e47
napitestingAméliehttps://github.com/Rust-for-Linux/linux/pull/1018rust
net_deviceRFCTomo F.https://lore.kernel.org/netdev/20230613045326.3938283-1-fujita.tomonori@gmail.com/rust-6.5
null blockRFCAndreas H.https://lore.kernel.org/rust-for-linux/20230503090708.2524310-1-nmi@metaspace.dk/rust-6.4
ofexperimentalAsahiLinuxhttps://github.com/AsahiLinux/linux/blob/gpu/rust-for-later/rust/kernel/of.rs
pcitestingAndreas H.https://github.com/Rust-for-Linux/linux/tree/rust-pci
phymergedTomo F.https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/rust/kernel/net/phy.rshttps://lore.kernel.org/rust-for-linux/20231026001050.1720612-1-fujita.tomonori@gmail.com/merged
platformtestingRust GHhttps://github.com/Rust-for-Linux/linux/blob/rust/rust/kernel/platform.rsrust
pm_runtimetestingMaciej F.https://github.com/Rust-for-Linux/linux/pull/700rust
pollreviewAlice R.https://lore.kernel.org/rust-for-linux/20240202-alice-file-v4-9-fc9c2080663b@google.com/
ramfsabandonedFox C.https://github.com/Rust-for-Linux/linux/pull/409rust
rbtreereviewAlice R.https://lore.kernel.org/rust-for-linux/20240205-b4-rbtree-v1-0-995e3eee38c0@google.com/
regmapexperimentalFabien P.https://github.com/Fabo/linux/tree/fparent/rust-regmap-dev
regulator/consumerexperimentalFabien P.https://github.com/Rust-for-Linux/linux/pull/1040rust-dev
regulator/driverexperimentalFabien P.https://github.com/Fabo/linux/commit/95360c6903e3fe948650a30268bbc9e6fd4b7af7rust-dev
resettestingNikos M.https://github.com/Rust-for-Linux/linux/pull/933rust
rtkit (apple)testingLinahttps://github.com/Rust-for-Linux/linux/pull/952/commits/f7708d02efab0d96e56f78d7e6dfa56adc948ef4rust-next
scatterlistRFCFox C.https://lore.kernel.org/rust-for-linux/20230610104909.3202958-1-changxian.cqs@antgroup.com/
scheduletestingBoqun F.https://github.com/Rust-for-Linux/linux/pull/861rust
secctxreviewAlice R.https://lore.kernel.org/rust-for-linux/20240202-alice-file-v4-5-fc9c2080663b@google.com/
sk_bufRFCTomo F.https://lore.kernel.org/netdev/20230613045326.3938283-1-fujita.tomonori@gmail.com/rust-6.5
socketRFCMichele DR.https://lore.kernel.org/rust-for-linux/20230814092302.1903203-1-dallerivemichele@gmail.com/rust-next
spitestingEsteban B.https://github.com/Rust-for-Linux/linux/pull/264rust-next
sysfstestingMartin RR.https://github.com/YakoYakoYokuYoku/linux/commits/sysfs-support
tarfstestingWedson AF.https://github.com/Rust-for-Linux/linux/pull/1037rust-next
taskmergedhttps://elixir.bootlin.com/linux/v6.4/source/rust/kernel/task.rsmerged
timertestingMaria C.https://github.com/Rust-for-Linux/linux/pull/982rust
hrtimerreviewAndreas H.https://lore.kernel.org/rust-for-linux/20240425094634.262674-1-nmi@metaspace.dk/
threadtestingBoqun F.https://github.com/Rust-for-Linux/linux/pull/109rust
usbtestingMartin RR.https://github.com/Rust-for-Linux/linux/pull/884rust
user-ptr/uaccessreviewAlice R.https://lore.kernel.org/rust-for-linux/20240418-alice-mm-v6-0-cb8f3e5d688f@google.com/
virtiotestingRichard L.https://github.com/Rust-for-Linux/linux/pull/886rust
workqueuemergedAlice R.https://elixir.bootlin.com/linux/v6.7/source/rust/kernel/workqueue.rshttps://lore.kernel.org/rust-for-linux/20230828104807.1581592-1-aliceryhl@google.com/merged
v4l2reviewDaniel A.https://lore.kernel.org/rust-for-linux/20230406215615.122099-1-daniel.almeida@collabora.com/rust
vfsRFCWedson AF.https://lore.kernel.org/rust-for-linux/20231018122518.128049-1-wedsonaf@gmail.com/#t
vfs, ext2experimentalWedson AF.https://github.com/wedsonaf/linux/commits/ext2fs/6.7-rc5
vfs, ext2experimentalTomo F.https://github.com/fujita/linux/tree/ext2-rust/fs/ext2rust6.8-rc1
vfs, puzzlefsRFCAriel M.https://lore.kernel.org/rust-for-linux/20230726164535.230515-1-amiculas@cisco.com/puzzlefs_dependencies
xarrayRFCMaíra C., Linahttps://lore.kernel.org/rust-for-linux/ZacW_e1mnNi6hT7M@boqun-archlinux/T/#m7231cc4d238de3930f1092dd1ab123c4ffe2315arust-next
apple misc itemstestingLinahttps://github.com/Rust-for-Linux/linux/pull/964rust-next
C+Rust kbuild systemexperimentalMiguel O.not yet published

If what you need still isn't listed here, take a look at these trees:

Project Idea Board

Below is a small list of larger projects that may be wanted in-tree. Before starting any work, drop by on Zulip or at the mailing list to see if anybody is working on it already.

AreaTaskDiscussionNotes
iioany sensorshttps://lore.kernel.org/rust-for-linux/2023061940-kindling-lagoon-3054@gregkh/IIO gets a ton of new drivers. There are lots of small ICs that fit this category and do not yet have C drivers.
phyMicrochip VSC825{4,6,7,8} phy driverOpen a Zulip topic and tag Shashwat and Trevor if interested (or email the list)
phyother physAny phys that are not yet supported by the kernel may be willing to accept Rust drivers
tcwrite tc actionshttps://lore.kernel.org/rust-for-linux/CALNs47v8x8RsV=EOKQnsL3RFycbY9asrq9bBV5z-sLjYYy+AVw@mail.gmail.com/Traffic control expressed some interest in using Rust and suggested actions as a place to start (see the lore link)

Aside from these larger projects, there are other ways to get involved both in the kernel and externally:

See https://rust-for-linux.com/contributing for some more complete information and other ideas.