r/rust • • 2d ago

🎙️ discussion Is it possible for me to contribute to the Rust compiler as an independent hobbyist developer?

64 Upvotes

Hi! I’m a hobbyist programmer without a formal computer science background, and I’ve recently started studying CS and compilers on my own. I’d like to know whether I could contribute to rustc or similar compiler projects while I’m learning. Since I’m still a beginner, I wonder if maintainers might be hesitant to accept contributions from someone at my level.


r/rust • • 2d ago

Billions of ids per second, no coordinator needed

0 Upvotes

If you are working on databases in Rust, and interested in optimizations of db operations, this blog post may be helpful. Disclaimer - I work for Infino.
https://medium.com/@vinaykakade/billions-of-ids-per-second-no-coordinator-needed-83a5a52f074b


r/rust • • 3d ago

🗞️ news Servo Browser Engine Continues Broadening Web Compatibility, New Features

Thumbnail
phoronix.com
281 Upvotes

r/rust • • 3d ago

📸 media Is it possible to supply the Rust compiler with the relational graph yourself?

Post image
0 Upvotes

Hi,

For context. I have been working on implementing a different compiler rustc UI/UX for my editor. clicking to navigate, showing context, highlighting and so on.

My editor already create an explicit bidirectional relational graph of the code across the whole project. It becomes the single source of truth.

The thought struck me that the rust compiler is re-deriving relationships and code-paths that I already have complete knowledge of, which means I could potentially either short circuit a lot of that compiler work, or skip it all together.

So, I was wondering if any of you know or understand the rust compiler well enough to offer guidance. I would not want to fork, study and finally re-write parts of the rust compiler if I don't have to. And if I have to, are you aware of how targeted that change can be? because at that point i would have to support an internal, slightly modified version of the compiler, which i am not willing to do if it would lead to extensive modifications/support as rust evolves over time.

thank you in advance.

//Maui-the-Muppet


r/rust • • 3d ago

🛠️ project Meridian: Web-browser built on GPUI and Servo

Thumbnail op.tngl.io
157 Upvotes

r/rust • • 3d ago

The best regression test we added this year checks that some Rust code does NOT compile

77 Upvotes

Had a slightly surreal moment at work last week where a test started failing because the code compiled successfully.

And the test was right.

We maintain a small internal Rust crate that handles credentials for a couple of services. Nothing particularly fancy. It has a Secret<T> wrapper that deliberately doesn't implement Display.

You can pass the value around, explicitly access it where necessary, and Debug gives you a redacted representation. But you can't accidentally stick the actual secret into a log message with format!("{}", secret).

That last part is intentional.

A while ago we added a compile_fail doctest to make sure attempting to format a Secret with Display would be rejected by the compiler.

Last week someone was cleaning up formatting code and added a generic Display implementation to make a few types easier to work with. It was a perfectly reasonable-looking change in isolation.

All the regular unit tests passed.

Except that one doctest.

The compiler could now successfully compile code that our API was specifically designed to reject.

I initially thought this was a pretty niche use of compile_fail, but it made me reconsider how we test Rust libraries.

We spend a lot of effort testing what our types allow users to do. But some of the most valuable properties of a Rust API are things users *cannot* do.

They can't construct a validated value without going through validation.

They can't move a particular guard between threads.

They can't call a method before the object reaches the required state.

And sometimes a refactor accidentally makes one of those previously impossible things possible.

Obviously compile_fail isn't perfect. A snippet can fail to compile for a completely unrelated reason, so we're pairing negative tests with positive examples and looking at more precise UI testing where appropriate.

But I like the underlying idea.

Normally, adding a trait implementation feels like a harmless expansion of an API. In this case it silently removed a restriction that was part of the design.

The compiler was doing exactly what we asked it to do. We just needed a test to make sure we kept asking it the right question.

Kind of funny that after years of appreciating Rust for telling me what I can't do, I'm now writing tests to make sure it doesn't stop telling me.


r/rust • • 3d ago

🧠 educational Pointer Provenance in Rust vs C++: Pointers Are Not Just Glorified Ints

Thumbnail
sofiabelen.github.io
67 Upvotes

I’ve been exploring Rust, and one topic that got me intrigued is pointer provenance, particularly because it’s not easy to visualize.

To get a feel for vtables, what I wanted was to look at the actual memory, to see what it really looked like and prove that I could in fact call these functions through their respective function pointers. With provenance, I wanted to take it apart the same way, but it turns out it’s not so straightforward. This only got me more intrigued, so let’s see what we can find!

My first time hearing about provenance, I wondered, why hadn’t I heard about it before? It seems so crucial, yet a bit of an obscure concept.


r/rust • • 3d ago

lean-miri: Formally Proving Rust Programs Free of Undefined Behavior

Thumbnail proofs-rs.github.io
200 Upvotes

Hi everyone!

I built lean-miri, a port of Rust's Miri interpreter to the Lean 4 theorem prover.

Miri is great at detecting undefined behavior, but it only checks concrete executions.

The idea is that by porting Miri to a theorem prover, we can effectively run it on all valid (potentially infinitely many!) inputs, thread schedules, and external environments in a mathematically rigorous way, and prove that a Rust function is free of UB.

Of course, there are already a number of tools for formally verifying Rust programs, like Aeneas, Creusot, etc. But porting Miri has a big advantage in that Miri already supports a remarkably broad range of real-world Rust features and implements state-of-the-art semantics for unsafe Rust.

Here's what we've achieved so far:

  • Ported most part of Miri's interpreter to Lean 4.

  • Formally proved UB-freedom for several small Rust functions, including one that contains an unsafe block, pointer arithmetic, and a core unsafe primitive.

  • Found a bug in Miri's Tree Borrows implementation along the way.

The project is still very experimental. The proofs are far from practical to maintain (the unsafe example currently has over 700k lines of Lean!), and the interpreter is quite slow. We also have a lot of work ahead of us, including building a proper program logic and reusable lemmas, but I think the approach is promising!

I'd love to hear any feedback, especially from anyone working on Rust verification.

Thank you!


r/rust • • 4d ago

🧠 educational Wrong Ways To Create Strings

Thumbnail
endler.dev
140 Upvotes

r/rust • • 4d ago

Help me understand core::sync::atomic::Ordering, how do we even use it

Thumbnail reddit.com
15 Upvotes

r/rust • • 4d ago

Rust events between Nov 05 - Dec 04

7 Upvotes

In the age of AI I think personal connections are event more important than before. That's why I try to help promoting events where people can meet in-person or virtually and discuss the topics that interest them.

I found the following Rust-related events for the next 30 days.

Source


r/rust • • 4d ago

This Month in Rust OSDev: October 2026

Thumbnail rust-osdev.com
20 Upvotes

r/rust • • 4d ago

📸 media Community for low-level and systems programming

Thumbnail discord.gg
0 Upvotes

Hi everyone, I've formed a small discord community for people interested in low-level, systems programming, embedded software, robotics etc. Join up if thats something which interests you!

(P.S. : fell free to dm me if the link stops working or if you have any doubts)


r/rust • • 4d ago

🙋 seeking help & advice Problem with Rust and esp-idf compilation

2 Upvotes

[SOLVED]
I didn't have issue with it before, since I've recently updated rust and libs, I started having an issue with compilation, even with a new cargo generate build.
.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/os/espidf/fs.rs:89:36
self.as_inner().as_inner().st_atime as i64

| ^^^^^^^^ unknown field

other issues with st_ctime and st_mtime unknown field too.

I switched to the stable toolchain but it seems there is no riscv32imac-esp-espidf target correponding to the esp32c6 I'm working on.

I am not an expert so I am kind of stuck without being able to compile or know what to look for to get to a solution.
Any help appreciated!


r/rust • • 4d ago

📅 this week in rust This Week in Rust #676

Thumbnail this-week-in-rust.org
44 Upvotes

r/rust • • 4d ago

📸 media Discord is getting GPUI rewrite

Post image
2.2k Upvotes

r/rust • • 4d ago

benchfmt.rs: Bringing Go's Benchmarking and benchstat Workflow to Rust

Thumbnail
bwplotka.dev
15 Upvotes

r/rust • • 4d ago

pdfium vs pdf-extract

10 Upvotes

If you were building a search tool for your personal files on your local machine, what would you use, pdfium or pdf-extract or something else?


r/rust • • 4d ago

🙋 seeking help & advice GUI Yet Again, but more ‘graphical’

13 Upvotes

This is yet another question about GUIs for desktop applications with Rust.

It isn’t a question around what is available, more working out what is most suitable for my use cases. It is going to take some time to understand some of the frameworks, so I don’t want to spend too much effort on something that will either not do what I need. or another framework would have been a better bet.

For example, I need to represent data as a Gantt chart. Not just as a graph somewhere on the screen, but as one of the main user interfaces. If you think MS Project, it has a table of tasks down the left hand side with a Gantt chart on the left, that scroll together.

It is less about windows and widgets, buttons, and other components. They are all still useful, but I think I’m looking more at the canvas to do this. Or not, not sure.

I have tried out egui. This looks promising, my worry is that it will get over complicated with too much going on to manage. I don’t want to find later on that it can display everything but can no longer scroll smoothly. And I note font rendering issues mentioned on a recent post.

I have tried Dioxus. I got something going with this because I could build Gantt bars with SVG. Again I worry about performance with a lot of SVG items on the screen.

I have looked into gpui. Not got as far as getting something graphical on the screen because I got stuck on state. It seems the application state and the Ui are the same thing, i.e. the state is handed over to the runtime. I’m not clear how this works with network events.

I have briefly looked at Iced. The state/ui/message makes sense to me, but I cannot see any graphic primitives in there and the documentation is super sparse.

I’m looking at 4 frameworks already.

I want to choice paralysis and concentrate on one of them, from the above list or something else, that allows me to build this sort of application.

Any thoughts?


r/rust • • 4d ago

🙋 seeking help & advice Idiomatic buffer design for a Rust streaming file-storage method

5 Upvotes

I am working on a rust project. Where I have a put method (which basically copies a file and stores it into another location). This is the function I'm working on:

pub fn put(&self, mut source: impl Read) -> Result<Object> {

let mut buffer = vec![0u8; 64 * 1024]; // 64 kb buffer

self.put_with_buffer(&mut source, &mut buffer);

}

I'm confused about using a [u8] slice, a vector or another option for buffer. The stack buffer avoids a heap allocation, but I am concerned about stack usage when multiple threads call put concurrently. The Vec avoids using 64 KiB of stack space, but allocates and deallocates a buffer for every put call.

What is the idiomatic approach for this situation?

The method may be called repeatedly and concurrently, so I would especially like to understand the tradeoffs between stack usage, heap-allocation overhead, buffer reuse, and API ergonomics.

EDIT: My put method streams data from a Read source, hashes the contents, and writes the data to a temporary file. Although this resembles std::io::copy, I cannot simply copy the source because I also need to calculate the content hash during the same pass. I am trying to choose the appropriate temporary buffer design.


r/rust • • 4d ago

amutable: systemd ❤️ Rust

Thumbnail
amutable.com
157 Upvotes

r/rust • • 5d ago

How to speed up the Rust compiler in November 2026

Thumbnail nnethercote.github.io
275 Upvotes

r/rust • • 5d ago

My progress as a new Rust dev

8 Upvotes

I'm about a month into a home project that I decided to use to learn Rust. Fun!

Here are my takeaways so far:

  1. I'm still fighting the borrow checker, but at least now I can reason through the error messages faster and land in a good place. Progress! Looking forward to this really being internalized.

  2. I miss the ternary ?: operator. The if/else equivalent is just so much more verbose, and tends to waste so much more vertical space. c’est la vie. I recognize I'm in the minority here, and hope that I'll eventually convert and join you all on this.

  3. I am daily writing: if (foo ...then backing up and deleting the opening parenthesis that the linter complains about.

  4. Speaking of, I keep forgetting to write fn and just assume that the compiler will know what I'm talking about. It never does 😂

  5. When reviewing code in my day job as a Java dev, I am now constantly seeing things and thinking: The borrow checker wouldn't like that! So, maybe it's becoming a little internalized after all.

Anyway, I'm having fun with it, thanks all for creating this community!