i built a zero-latency evm indexer in rust (71k tx/sec throughput)
hey guys. not sure if this is the right place to share, but heres something I've been working on for a while
basically ive been working on my own reth exex, called shadow index. heres a short glimpse of it
its a zero-latency evm indexer (reth exex + clickhouse)
current status
* core pipeline complete.
* 37/37 tests passing (unit + integration).
* dockerized + prometheus metrics wired up.
performance (dummy data stress test)
* throughput: 7,159 blocks/sec | 71,592 txs/sec.
* latency: 4.08ms median | 6.30ms max (block received to db flush).
* context: standard rpcs take 50-500ms just to return data over the network. this writes to disk in 4ms.
architecture flexes
* zero rpc overhead: runs entirely in-process with the reth node. memory-to-memory.
* native reorg handling: built on clickhouse CollapsingMergeTree. automatically cancels reverted blocks (sign = -1) without messy state rollbacks.
* state diffs: extracts exact storage slot changes directly from evm BundleState.
* bulletproof: custom circuit breaker, exponential backoff, and atomic cursor persistence (never loses its place on restart).
what's underway
* api layer: spinning up a highly concurrent read-only rest api via axum for frontend consumption.
* ci: wiring up github actions.
* the live test: deploying a 24-hour live sync on sepolia to prove out memory stability and network reorgs.
id love any suggestions or reviews based on just this piece of text and the benchmarks :)
https://redd.it/1r5yykx
@r_rust
hey guys. not sure if this is the right place to share, but heres something I've been working on for a while
basically ive been working on my own reth exex, called shadow index. heres a short glimpse of it
its a zero-latency evm indexer (reth exex + clickhouse)
current status
* core pipeline complete.
* 37/37 tests passing (unit + integration).
* dockerized + prometheus metrics wired up.
performance (dummy data stress test)
* throughput: 7,159 blocks/sec | 71,592 txs/sec.
* latency: 4.08ms median | 6.30ms max (block received to db flush).
* context: standard rpcs take 50-500ms just to return data over the network. this writes to disk in 4ms.
architecture flexes
* zero rpc overhead: runs entirely in-process with the reth node. memory-to-memory.
* native reorg handling: built on clickhouse CollapsingMergeTree. automatically cancels reverted blocks (sign = -1) without messy state rollbacks.
* state diffs: extracts exact storage slot changes directly from evm BundleState.
* bulletproof: custom circuit breaker, exponential backoff, and atomic cursor persistence (never loses its place on restart).
what's underway
* api layer: spinning up a highly concurrent read-only rest api via axum for frontend consumption.
* ci: wiring up github actions.
* the live test: deploying a 24-hour live sync on sepolia to prove out memory stability and network reorgs.
id love any suggestions or reviews based on just this piece of text and the benchmarks :)
https://redd.it/1r5yykx
@r_rust
Reddit
From the rust community on Reddit
Explore this post and more from the rust community
Hey Rustaceans! Got a question? Ask here (7/2026)!
Mystified about strings? Borrow checker has you in a headlock? Seek help here! There are no stupid questions, only docs that haven't been written yet. Please note that if you include code examples to e.g. show a compiler error or surprising result, linking a playground with the code will improve your chances of getting help quickly.
If you have a StackOverflow account, consider asking it there instead! StackOverflow shows up much higher in search results, so ahaving your question there also helps future Rust users (be sure to give it the "Rust" tag for maximum visibility). Note that this site is very interested in question quality. I've been asked to read a RFC I authored once. If you want your code reviewed or review other's code, there's a codereview stackexchange, too. If you need to test your code, maybe the Rust playground is for you.
Here are some other venues where help may be found:
/r/learnrust is a subreddit to share your questions and epiphanies learning Rust programming.
The official Rust user forums: https://users.rust-lang.org/.
The official Rust Programming Language Discord: https://discord.gg/rust-lang
The unofficial Rust community Discord: https://bit.ly/rust-community
Also check out last week's thread with many good questions and answers. And if you believe your question to be either very complex or worthy of larger dissemination, feel free to create a text post.
Also if you want to be mentored by experienced Rustaceans, tell us the area of expertise that you seek. Finally, if you are looking for Rust jobs, the most recent thread is here.
https://redd.it/1r63rzp
@r_rust
Mystified about strings? Borrow checker has you in a headlock? Seek help here! There are no stupid questions, only docs that haven't been written yet. Please note that if you include code examples to e.g. show a compiler error or surprising result, linking a playground with the code will improve your chances of getting help quickly.
If you have a StackOverflow account, consider asking it there instead! StackOverflow shows up much higher in search results, so ahaving your question there also helps future Rust users (be sure to give it the "Rust" tag for maximum visibility). Note that this site is very interested in question quality. I've been asked to read a RFC I authored once. If you want your code reviewed or review other's code, there's a codereview stackexchange, too. If you need to test your code, maybe the Rust playground is for you.
Here are some other venues where help may be found:
/r/learnrust is a subreddit to share your questions and epiphanies learning Rust programming.
The official Rust user forums: https://users.rust-lang.org/.
The official Rust Programming Language Discord: https://discord.gg/rust-lang
The unofficial Rust community Discord: https://bit.ly/rust-community
Also check out last week's thread with many good questions and answers. And if you believe your question to be either very complex or worthy of larger dissemination, feel free to create a text post.
Also if you want to be mentored by experienced Rustaceans, tell us the area of expertise that you seek. Finally, if you are looking for Rust jobs, the most recent thread is here.
https://redd.it/1r63rzp
@r_rust
play.rust-lang.org
Rust Playground
A browser interface to the Rust compiler to experiment with the language
What's everyone working on this week (7/2026)
New week, new Rust! What are you folks up to? Answer here or over at rust-users!
https://redd.it/1r63svr
@r_rust
New week, new Rust! What are you folks up to? Answer here or over at rust-users!
https://redd.it/1r63svr
@r_rust
The Rust Programming Language Forum
What's everyone working on this week (7/2026)
New week, new Rust! What are you folks up to?
What would your tech stack be for a new greenfield Rust web service (REST/gRPC)?
Let's say, you're asked to start a new web service at a company, and it will be a first service written in Rust. Eventually you'll need the usual components, like integrations with 3rd services (e.g., authentication and authorization), maybe gRPC or just REST, a PostgreSQL, Kafka, Redis, metrics/logs/observability (e.g., OpenTelemetry), and so on.
What would your 2026 tech stack look like? Will it be something like
https://redd.it/1r6prnx
@r_rust
Let's say, you're asked to start a new web service at a company, and it will be a first service written in Rust. Eventually you'll need the usual components, like integrations with 3rd services (e.g., authentication and authorization), maybe gRPC or just REST, a PostgreSQL, Kafka, Redis, metrics/logs/observability (e.g., OpenTelemetry), and so on.
What would your 2026 tech stack look like? Will it be something like
Axum + tonic + SQLx + Anyhow?https://redd.it/1r6prnx
@r_rust
Reddit
From the rust community on Reddit
Explore this post and more from the rust community
Learning Rust was the best decision in my life
34F who lives with epilepsy here.
Recently had multiple back to back seizures and had to leave my day job, my hopes of getting hired full-time are very slim.
Apart from my marketing job, my only other skill is this language, which I learned as a hobby back in Uni.
Given the limited options in the same career, I've decided to build some indie apps in rust, try and market them with what I know.
Life's pretty bad but things tend to ease out a bit when we commit to something meaningful for ourselves, given how much time it'd take to learn a new skill in scratch, I feel very grateful as I learned to code in Rust before.
I don't have high hopes, just that there might be some light in the tunnel, and I'm trying to look in the bright side. So thought I'd share it here.
Thanks for reading.
https://redd.it/1ral7hi
@r_rust
34F who lives with epilepsy here.
Recently had multiple back to back seizures and had to leave my day job, my hopes of getting hired full-time are very slim.
Apart from my marketing job, my only other skill is this language, which I learned as a hobby back in Uni.
Given the limited options in the same career, I've decided to build some indie apps in rust, try and market them with what I know.
Life's pretty bad but things tend to ease out a bit when we commit to something meaningful for ourselves, given how much time it'd take to learn a new skill in scratch, I feel very grateful as I learned to code in Rust before.
I don't have high hopes, just that there might be some light in the tunnel, and I'm trying to look in the bright side. So thought I'd share it here.
Thanks for reading.
https://redd.it/1ral7hi
@r_rust
Reddit
From the rust community on Reddit
Explore this post and more from the rust community
You can use Rust to make PCBs now!
I created a bindings library that provides a Rust API to interface with KiCAD using the new KiCAD IPC API
KiCAD is like the VSCode of circuit board design. It's pretty sick! And now, using the IPC API (and the bindings I've made) you can write noscripts, plugins, and extensions, to do things in KiCAD using Rust!
It's super duper new - just released 12 hours ago - but the primary API surface seems to work well!
MIT Licensed and open-source! contributions welcome of course :)
github.com/milind220/kicad-ipc-rs
https://redd.it/1rakpnx
@r_rust
I created a bindings library that provides a Rust API to interface with KiCAD using the new KiCAD IPC API
KiCAD is like the VSCode of circuit board design. It's pretty sick! And now, using the IPC API (and the bindings I've made) you can write noscripts, plugins, and extensions, to do things in KiCAD using Rust!
It's super duper new - just released 12 hours ago - but the primary API surface seems to work well!
MIT Licensed and open-source! contributions welcome of course :)
github.com/milind220/kicad-ipc-rs
https://redd.it/1rakpnx
@r_rust
GitHub
GitHub - Milind220/kicad-ipc-rs: MIT licensed, fully updated, actively maintained Rust bindings for the KiCAD IPC API
MIT licensed, fully updated, actively maintained Rust bindings for the KiCAD IPC API - GitHub - Milind220/kicad-ipc-rs: MIT licensed, fully updated, actively maintained Rust bindings for the KiCAD...
[Media] TrailBase 0.24: Fast, open, single-executable Firebase alternative now with Geospatial
https://redd.it/1ra8lxx
@r_rust
https://redd.it/1ra8lxx
@r_rust
“Claw: It even comes with an established emoji 🦞” anyone else triggered?
https://simonwillison.net/2026/Feb/21/claws/
So the whole openclaw hype where basically some guy just went ahead to throw out all good engineering and security principles to vibe code a piece of unmanageable software that already caused lots of issues for a lot of people gets massively rewarded.
And now THAT is trying to claim our beloved Ferris?
Got to say that’s too much for me. Universe give me a break please.
Update: as pointed out in the comments, Lobster != crab so it’s not as bad as I thought. Still close enough…
https://redd.it/1ranw61
@r_rust
https://simonwillison.net/2026/Feb/21/claws/
So the whole openclaw hype where basically some guy just went ahead to throw out all good engineering and security principles to vibe code a piece of unmanageable software that already caused lots of issues for a lot of people gets massively rewarded.
And now THAT is trying to claim our beloved Ferris?
Got to say that’s too much for me. Universe give me a break please.
Update: as pointed out in the comments, Lobster != crab so it’s not as bad as I thought. Still close enough…
https://redd.it/1ranw61
@r_rust
Simon Willison’s Weblog
Andrej Karpathy talks about “Claws”
Andrej Karpathy tweeted a mini-essay about buying a Mac Mini ("The apple store person told me they are selling like hotcakes and everyone is confused") to tinker with Claws: I'm …
Survey of organizational ownership and registry namespace designs for Cargo and Crates.io - cargo
https://internals.rust-lang.org/t/survey-of-organizational-ownership-and-registry-namespace-designs-for-cargo-and-crates-io/24027/1
https://redd.it/1ra9si0
@r_rust
https://internals.rust-lang.org/t/survey-of-organizational-ownership-and-registry-namespace-designs-for-cargo-and-crates-io/24027/1
https://redd.it/1ra9si0
@r_rust
Rust Internals
Survey of organizational ownership and registry namespace designs for Cargo and Crates.io
Every once in a while, namespacing support on crates.io comes up among many different use cases. This is an attempt to collect the information on this topic to reduce the conversations from falling into spinning in circles over the same points. The focus…
Parse, don't Validate and Type-Driven Design in Rust
https://www.harudagondi.space/blog/parse-dont-validate-and-type-driven-design-in-rust
https://redd.it/1rapnx5
@r_rust
https://www.harudagondi.space/blog/parse-dont-validate-and-type-driven-design-in-rust
https://redd.it/1rapnx5
@r_rust
www.harudagondi.space
Parse, don't Validate and Type-Driven Design in Rust — ramblings of @harudagondi
Applying the type-driven mindset to rust via the "Parse, don't Validate" pattern
Proxelar v0.2.0 — a MITM proxy in Rust with TUI, web GUI, and terminal modes
I just shipped v0.2.0 of Proxelar, my HTTP/HTTPS intercepting proxy.
This release is basically a full rewrite — ditched the old Tauri desktop app and replaced it with a CLI that has three interface modes: an interactive TUI (ratatui), a web GUI (axum + WebSocket), and plain terminal output.
Under the hood it moved to hyper 1.x, rustls 0.23, and got split into a clean 3-crate workspace. It does CONNECT tunneling, HTTPS MITM with auto-generated certs, and has a reverse proxy mode too.
cargo install proxelar
proxelar # TUI
proxelar -i gui # web GUI
Would love feedback and contributions!
https://redd.it/1rapmrs
@r_rust
I just shipped v0.2.0 of Proxelar, my HTTP/HTTPS intercepting proxy.
This release is basically a full rewrite — ditched the old Tauri desktop app and replaced it with a CLI that has three interface modes: an interactive TUI (ratatui), a web GUI (axum + WebSocket), and plain terminal output.
Under the hood it moved to hyper 1.x, rustls 0.23, and got split into a clean 3-crate workspace. It does CONNECT tunneling, HTTPS MITM with auto-generated certs, and has a reverse proxy mode too.
cargo install proxelar
proxelar # TUI
proxelar -i gui # web GUI
Would love feedback and contributions!
https://redd.it/1rapmrs
@r_rust
GitHub
GitHub - emanuele-em/proxelar: A MITM Proxy 🧑💻! Toolkit for HTTP/1, HTTP/2, and WebSockets with SSL/TLS Capabilities. Learning…
A MITM Proxy 🧑💻! Toolkit for HTTP/1, HTTP/2, and WebSockets with SSL/TLS Capabilities. Learning Project. - emanuele-em/proxelar
I built a speed-first file deduplication engine using tiered BLAKE3 hashing and CoW reflinks
I recently decided to dive into systems programming, and I just published my very first Rust project to crates.io today. It's a local CLI tool called
Before getting into the weeds of how it works, here are the links if you want to jump straight to the code:
GitHub:[https://github.com/Rakshat28/bdstorage](https://github.com/Rakshat28/bdstorage)
Crates.io:https://crates.io/crates/bdstorage
Why I built it & how it works: I wanted a deduplication tool that doesn't blindly read and hash every single byte on the disk, thrashing the drive in the process. To avoid this,
1. Size grouping (Zero I/O): Filters out unique file sizes immediately using parallel directory traversal (
2. Sparse hashing (Minimal I/O): Samples a 12KB chunk (start, middle, and end) to quickly eliminate files that share a size but have different contents. On Linux, it leverages
3. Full hashing: Only files that survive the sparse check get a full BLAKE3 hash using a high-performance 128KB buffer.
Handling the duplicates: Instead of just deleting the duplicate and linking directly to the remaining file,
It then replaces the original files with Copy-on-Write (CoW) reflinks pointing to the vault. If your filesystem doesn't support reflinks, it gracefully falls back to standard hard links. There's also a
Since this is my very first Rust project, I would absolutely love any feedback on the code, the architecture, or idiomatic practices. Feel free to critique the code, raise issues, or submit PRs if you want to contribute.
If you find the project interesting or useful, a star on the repo would mean the world to me, and feel free to follow me on GitHub if you want to see what I build next.
https://redd.it/1ratfky
@r_rust
I recently decided to dive into systems programming, and I just published my very first Rust project to crates.io today. It's a local CLI tool called
bdstorage (deduplication engine strictly focused on minimizing disk I/O.)Before getting into the weeds of how it works, here are the links if you want to jump straight to the code:
GitHub:[https://github.com/Rakshat28/bdstorage](https://github.com/Rakshat28/bdstorage)
Crates.io:https://crates.io/crates/bdstorage
Why I built it & how it works: I wanted a deduplication tool that doesn't blindly read and hash every single byte on the disk, thrashing the drive in the process. To avoid this,
bdstorage uses a 3-step pipeline to filter out files as early as possible:1. Size grouping (Zero I/O): Filters out unique file sizes immediately using parallel directory traversal (
jwalk).2. Sparse hashing (Minimal I/O): Samples a 12KB chunk (start, middle, and end) to quickly eliminate files that share a size but have different contents. On Linux, it leverages
fiemap ioctls to intelligently adjust offsets for sparse files.3. Full hashing: Only files that survive the sparse check get a full BLAKE3 hash using a high-performance 128KB buffer.
Handling the duplicates: Instead of just deleting the duplicate and linking directly to the remaining file,
bdstorage moves the first instance (the master copy) into a local Content-Addressable Storage (CAS) vault in your home directory. It tracks file metadata and reference counts using an embedded redb database.It then replaces the original files with Copy-on-Write (CoW) reflinks pointing to the vault. If your filesystem doesn't support reflinks, it gracefully falls back to standard hard links. There's also a
--paranoid flag for byte-for-byte verification before linking to guarantee 100% collision safety and protect against bit rot.Since this is my very first Rust project, I would absolutely love any feedback on the code, the architecture, or idiomatic practices. Feel free to critique the code, raise issues, or submit PRs if you want to contribute.
If you find the project interesting or useful, a star on the repo would mean the world to me, and feel free to follow me on GitHub if you want to see what I build next.
https://redd.it/1ratfky
@r_rust
crates.io
crates.io: Rust Package Registry
Iron-Wolf: A Wolfenstein 3D Source Port in Rust
https://github.com/Ragnaroek/iron-wolf
There are some satellites projects around this also in Rust.
A VGA emulator: https://github.com/Ragnaroek/vga-emu
and a OPL emulator: https://github.com/Ragnaroek/opl-emu (for sound)
and also a player for the web: https://github.com/Ragnaroek/iron-wolf-webplayer (written with eframe, to try eframe out).
You can also play the web version here: https://wolf.ironmule.dev/
Had a lot of fun doing all of this!
https://redd.it/1raux1c
@r_rust
https://github.com/Ragnaroek/iron-wolf
There are some satellites projects around this also in Rust.
A VGA emulator: https://github.com/Ragnaroek/vga-emu
and a OPL emulator: https://github.com/Ragnaroek/opl-emu (for sound)
and also a player for the web: https://github.com/Ragnaroek/iron-wolf-webplayer (written with eframe, to try eframe out).
You can also play the web version here: https://wolf.ironmule.dev/
Had a lot of fun doing all of this!
https://redd.it/1raux1c
@r_rust
GitHub
GitHub - Ragnaroek/iron-wolf: wolf3D in Rust
wolf3D in Rust. Contribute to Ragnaroek/iron-wolf development by creating an account on GitHub.
I built a fixed-size linear probing hash table to bypass university website blocking
Repo: [https://github.com/dilluti0n/dpibreak](https://github.com/dilluti0n/dpibreak)
Your HTTPS traffic is encrypted, but the very first packet (TLS ClientHello) has to announce the destination domain in plaintext. DPI equipment reads it and drops the connection if it doesn't like where you're going. DPIBreak manipulates this packet in a standards-compliant way so that DPI can no longer read the domain, but the actual server still can.
On Linux:
That's it. Stopping (Ctrl+C) it reverts everything. On Windows, just double-click the exe.
Unlike VPNs, there's no external server involved. On Linux, DPIBreak uses
It also supports fake ClientHello injection (
The tricky part: between a SYN/ACK arriving and the corresponding ClientHello being sent, SYN/ACKs from other servers can interleave. A simple global variable won't cut it. So I built HopTab, a fixed-size linear probing hash table with stale eviction (I know, it sounds weird, but it fits this usecase perfectly!) that caches (IP, hop) pairs for this specific use case.
I live in South Korea, and Korean ISP-level DPI was bypassable with just fragmentation. But my university's internal DPI was not. Turning on
Feedback, bug reports, or just saying hi: https://github.com/dilluti0n/dpibreak/issues
https://redd.it/1ray40v
@r_rust
Repo: [https://github.com/dilluti0n/dpibreak](https://github.com/dilluti0n/dpibreak)
Your HTTPS traffic is encrypted, but the very first packet (TLS ClientHello) has to announce the destination domain in plaintext. DPI equipment reads it and drops the connection if it doesn't like where you're going. DPIBreak manipulates this packet in a standards-compliant way so that DPI can no longer read the domain, but the actual server still can.
On Linux:
curl -fsSL https://raw.githubusercontent.com/dilluti0n/dpibreak/master/install.sh | sh
sudo dpibreak
That's it. Stopping (Ctrl+C) it reverts everything. On Windows, just double-click the exe.
Unlike VPNs, there's no external server involved. On Linux, DPIBreak uses
nfqueue to move packets from kernel to userspace for manipulation. To keep overhead minimal, nftables rules ensure only the TLS handshake packets are sent to the queue, everything else (video streaming, downloads, etc.) stays in the kernel path and never triggers a context switch. On Windows, it uses WinDivert with an equivalent filter.It also supports fake ClientHello injection (
--fake-autottl) for more aggressive DPI setups. The idea is to send a decoy packet with a TTL just high enough to pass the DPI equipment but expire before reaching the real server. To ensure the fake packet does not reach to the destination site, DPIBreak infers the hop count from inbound SYN/ACK packets.The tricky part: between a SYN/ACK arriving and the corresponding ClientHello being sent, SYN/ACKs from other servers can interleave. A simple global variable won't cut it. So I built HopTab, a fixed-size linear probing hash table with stale eviction (I know, it sounds weird, but it fits this usecase perfectly!) that caches (IP, hop) pairs for this specific use case.
I live in South Korea, and Korean ISP-level DPI was bypassable with just fragmentation. But my university's internal DPI was not. Turning on
--fake-autottl solved it. So if basic mode doesn't work for you, give that a try.Feedback, bug reports, or just saying hi: https://github.com/dilluti0n/dpibreak/issues
https://redd.it/1ray40v
@r_rust
GitHub
GitHub - dilluti0n/dpibreak: Fast and easy-to-use DPI circumvention tool in Rust. (Linux, Windows)
Fast and easy-to-use DPI circumvention tool in Rust. (Linux, Windows) - dilluti0n/dpibreak
Stabilize `if let` guards (Rust 1.95)
https://github.com/rust-lang/rust/pull/141295
https://redd.it/1rb5ij8
@r_rust
https://github.com/rust-lang/rust/pull/141295
https://redd.it/1rb5ij8
@r_rust
GitHub
Stabilize `if let` guards (`feature(if_let_guard)`) by Kivooeo · Pull Request #141295 · rust-lang/rust
Summary
This proposes the stabilization of if let guards (tracking issue: #51114, RFC: rust-lang/rfcs#2294). This feature allows if let expressions to be used directly within match arm guards, enab...
This proposes the stabilization of if let guards (tracking issue: #51114, RFC: rust-lang/rfcs#2294). This feature allows if let expressions to be used directly within match arm guards, enab...
I'm in love with Rust.
Hi all, r/rust
a few months ago, I ditched Golang and picked Rust based on pure vibe and aesthetic. Coming from a C/C++ background, most of Rust concepts seemed understandable. I found myself slowing down when I stated building a production ready app ( fyi: Modulus , if you're curious it's a desktop app built with tauri ) but on the other hand, there are hardly any bug on production.
I won't call myself an expert on Rust but boy, I get the hype now.
https://redd.it/1rb4n0q
@r_rust
Hi all, r/rust
a few months ago, I ditched Golang and picked Rust based on pure vibe and aesthetic. Coming from a C/C++ background, most of Rust concepts seemed understandable. I found myself slowing down when I stated building a production ready app ( fyi: Modulus , if you're curious it's a desktop app built with tauri ) but on the other hand, there are hardly any bug on production.
I won't call myself an expert on Rust but boy, I get the hype now.
https://redd.it/1rb4n0q
@r_rust