Sign in

James Munns

@jamesmunns.com
6.7K followers 844 following 8.1K posts

Notable Protocol Enjoyer. Doing stuff, mostly in Rust and on Embedded systems. Co-host @sdr-podcast.com DMs (matrix): @jamesmunns:beeper.com DMs (signal): jamesmunns.255 he/him Kein Ort für Nazis

PostsRepliesMedia
Reposted by James Munns
Marco Ieni @ieni.dev · 9h
I’m now team leader of the Rust Infrastructure team! I’ll keep shipping, but I’ll also pay more attention to the load, health, and overall direction of the team.
https://rust-lang.org/governance/teams/infra/
3637
Reposted by James Munns
FerrousSystems @ferroussystems.bsky.social · 29/09/2026
Universal Signalling and the Ferrocene team are developing the first railway certification package for Rust under EN 50716, establishing a pathway for Rust in safety-critical railway applications. Read more: bit.ly/4z193o6 #UniversalSignalling #Ferrocene #RustLang #RailTech
Social media graphic on a light gray grid background with scattered pastel-colored squares. The blue Ferrous Systems logo appears in the upper left. A large rounded light-blue panel features a green “FERROCENE NEWS” banner and the headline “All aboard the Rust train!” with a train emoji. Below, text announces that Universal Signalling selects Ferrocene to develop the first Rust-based railway certification package in compliance with EN 50716.
1405
Reposted by James Munns
Matt Keeter @mattkeeter.com · 28/09/2026
hi friends I'm very excited to announce Halfspace, my experimental cross-platform IDE for solid modeling with distance fields! This has been in progress since midway through last year, and it's finally "done enough" to make it more public.
mattkeeter.com
Halfspace
An IDE for solid modelling with distance fields
520347
Reposted by James Munns
Pete 🙆‍♂️ @petelevasseur.com · 28/09/2026
proud to share that I was selected to serve on the Rust Project Leadership Council! my role's to represent the interests of the top-level Language team, and all sub-teams =)
Screenshot showing Pete LeVasseur as the Language team representative to the Rust Project Leadership Council.
4657
Reposted by James Munns
nia (cia asset) @nia.is.fckn.gay · 28/09/2026
I'm officially lead of the rust library team! i don't have anything corny to say about it I'm just viciously proud of myself rust-lang.org/governance/t...
rust-lang.org
Library team
A language empowering everyone to build reliable and efficient software.
1121810
Reposted by James Munns
rain 🌦️ @sunshowers.io · 27/09/2026
Friends don't let friends use serde_json::Value as a stepping stone
Appendix: why not serde_json::Value?
For reading versioned data, a naive implementation might do something like:

struct ReadEnvelope {
    version: u32,
    data: serde_json::Value,
}

impl ReadEnvelope {
    fn deserialize_data<T: serde::de::DeserializeOwned>(
        &self,
    ) -> Result<T, serde_json::Error> {
        serde_json::from_value(self.data.clone())
    }
}
But this has a few pitfalls:

serde_json::Value has funky behavior around objects in a few different ways.

For a payload like {"a":1,"a":2}, serde_json::Value drops the first a and only keeps the last one. This crate lets the deserialized type decide what to do with duplicate keys (a derived Deserialize would typically reject duplicate keys).

There is no workaround for this with serde_json::Value.

Object key order is only preserved if the preserve_order feature is enabled. This can lead to surprising roundtrip behavior. There are a couple different workarounds, neither of which is satisfying:

Enable the preserve_order feature, which affects all other crates in the Cargo dependency graph.
Accept that key order might not roundtrip. This feature-flag coupling is hard to explain to users; we can do much better than this.
With default features, serde_json::Value cannot represent certain types that serde itself supports deserialization for, such as u128s. Like 1.2 above, turning on arbitrary_precision would fix this, but that is undesirable for the same reasons.

If deserialization fails, the error message doesn’t carry a line/column offset.

An in-between option is serde_json::value::RawValue, which allows part of a JSON payload to be stored as a string, and addresses points 1 and 2. But for point 3, RawValue produces incorrect line and column offsets on error (the offsets produced are relative to the captured part of the payload, not relative to the full payload). Incorrect values are worse than not having the line and column offsets at all.Instead of either option, we perform passes over the underlying JSON directly:

The first pass validates that the JSON is well-formed, and for envelope reads, records which top-level fields are present.
For envelope reads, the second pass reads the version, ignoring the data.
Then, depending on the read method called, we perform one or more deserialization passes through the VersionSet::parse callback.
Why not one streaming pass? Because data could come before version, for example if serde_json::Value is used without preserve_order, or with jq -S.
5775
James Munns @jamesmunns.com · 25/09/2026
I've always assumed that the build tool "buck" was named after the parts used to shape a form in vacuum forming or leather working (literally, a tool for building something), but I actually can't find any mention of that, and I'm slightly amazed they backed into a good play on words by accident.
391
Reposted by James Munns
André Arko @indirect.io · 24/09/2026
OH Functional programming is when Rust people read your code and go "what the fuck (laudatory)". Imperative programming is when Rust people read your code and go "what the fuck (derogatory)"
111822
Reposted by James Munns
Predrag Gruevski @predr.ag · 21/09/2026
GitHub Actions + Rust's Miri can leak your secrets in CI 🧵 If you run Miri in CI: - upgrade to the 2026-09-22 nightly - clear caches - rotate any secrets that the `cargo miri` CI job had access to GPT-6 Astra helped find this 🦀
GitHub Actions makes it possible to cache directories between runs. Typical setups allow CI runs on main (and other branches) to write to cache, and PRs can only read from cache (preventing cache poisoning). Rust projects tend to speed up CI by caching binaries built by cargo install and sometimes the contents of target/.

PR CI can be triggered by anyone who can open PRs on your repository. GitHub requires maintainer approval for the first PR, but future PRs will rerun CI on every push. Anyone who has previously landed a change can trigger a CI run extracting information from cached target/ and then cover their tracks by pushing a second commit to the PR.

GitHub sometimes hides overwritten commits in its UI, making this kind of attack harder to detect. CI run logs and overwritten commits are also deleted after a few months.

When cargo miri is invoked, Miri needs to retain build-relevant environment variables between runs. The current code to do so achieves this by storing all environment variables to target/. This, of course, persists when target/ is cached.

If your environment contained secrets, these can now be accessed by PRs via the cache.
1389
James Munns @jamesmunns.com · 19/09/2026
Flight currently delayed 2.5 hours, I'm not sure if I'd rather it leave asap, or delay another 1.5h for that sweet sweet 600 EUR payout. So far they've gifted me a 7EUR voucher, which I might be able to get a beer with! We will see!
3210
James Munns @jamesmunns.com · 19/09/2026
Come to Flughafen Frankfurt Terminal Z in the next 20 minutes if you need an ass-kicking
290
Reposted by James Munns
Rust Language @rust-lang.org · 17/09/2026
⚠️ We believe that there is an ongoing campaign targeting owners of popular crates and rust-lang team members that is attempting to compromise devices and accounts in order to use them to publish malware. See our blog post for details: blog.rust-lang.org/2026/09/17/t...
blog.rust-lang.org
Be alert: targeted attacks on prominent Rustaceans | Rust Blog
Empowering everyone to build reliable and efficient software.
121990
Reposted by James Munns
Mara Bos @mara.bsky.social · 17/09/2026
You can now sponsor RustNL's Rust Maintainer Team through GitHub Sponsors: github.com/sponsors/rus... The page also lists other options to send us money. With your support, we can make sure the Rust project stays well maintained and grow our team with new talent. 💛
github.com
Sponsor @rustnl on GitHub Sponsors
Support our Rust Maintainers Team: https://rustnl.org/maintainers/ Over 30% of all pull requests on https://github.com/rust-lang/rust/ are either authored by or reviewed by our team.
1278
James Munns @jamesmunns.com · 17/09/2026
Even if you filtered notifs just to people who liked + reposted it (and maybe kept the original post but visually marked it in appviews + embeds?), that actually would be a *really* cool feature.
2150
Reposted by James Munns
DEI Speedwagon @myrrlyn.net · 16/09/2026
dang i heard drew got woke i didn’t realize he got WOKE
4387
Reposted by James Munns
DEI Speedwagon @myrrlyn.net · 15/09/2026
i lost a big swath of my #rustlang muties during The Great Sundering but if any of you people are interested i have a job description for ya in the bae area looks interesting but i am committed to being Never Californian so job-boards.greenhouse.io/intrinsicrob...
job-boards.greenhouse.io
Full Stack Software Engineer - Factory Orchestration
Mountain View, California
1126
James Munns @jamesmunns.com · 14/09/2026
Oh woah
050
James Munns @jamesmunns.com · 13/09/2026
I want to write a simulation of this that uses the center of mass (the orange dot here) to pick a position on an HSV color wheel. Use the angle as the huge, use distance from the center as the saturation and/or brightness. I need to add smartled/ws2812b support to hubris.
1192
Reposted by James Munns
Kevin Spring @kev507.bsky.social · 11/09/2026
Building the Oxide Data Center Explorer with Astra
Grid of seven screenshots from an interactive 3D tour of an illustrated Oxide data hall. Scenes move from a row of black Oxide racks with green sled faceplates and yellow overhead cabling, to close-ups of a compute sled pulled out from the rack, a front-loading storage sled, a network switch drawer, and power shelves with bundled cables. Each frame has a dark panel with a stop title and description, such as Cloud infrastructure in your data center and Storage spans the rack, plus tour controls for Back, Pause, and Next.
3714
James Munns @jamesmunns.com · 11/09/2026
Great now I want Zapiekanka
1130
James Munns @jamesmunns.com · 11/09/2026
For Indie Revival, I'm counting: * Bloc Party * Broken Social Scene * Dandy Warhols * Death Cab * Interpol * Metric * Modest Mouse * The Strokes * Young The Giant AND SKA too! * Big D and the Kids Table * Goldfinger * Streetlight Manifesto wtf, 2026? en.wikipedia.org/wiki/List_of...
en.wikipedia.org
List of 2026 albums - Wikipedia
380
James Munns @jamesmunns.com · 11/09/2026
I bought a tiny travel scale (for weighing myself), and: 1. It is silly small, like the size of a kitchen scale or an A5 sheet of paper, but it does work better than you think it would if you balance on it. 2. It does read ~0.6kg under my usual scale, and I have no way to calibrate either scale.
A very small scale with the brand "TANITA" and a big screen, sitting on top of an A4 notepad clipboard. It is roughly the size of an A5 sheet of paper (scale: 190mm x 135mm, A5: 210mm x 148mm).
130
Reposted by James Munns
RustNL @rustnl.bsky.social · 10/09/2026
** Ticket sales now open ** Get your tickets for RustWeek 2027! We lowered the ticket prices: privately-paid tickets are now 199 instead of 249 euro. A checkbox enables a 100 euro discount for those who can't afford the full price ✨️. See you in Utrecht! 2027.rustweek.org #rustweek2027 #rust
2027.rustweek.org
RustWeek 2027 - RustWeek 2027
RustWeek 2027, The Netherlands - May 24–29 2027. The world's biggest Rust conference returns to beautiful Utrecht, welcoming over 900+ community members, professionals and the maintainers of Rust.
01810
Reposted by James Munns
Bryan Cantrill @bcantrill.bsky.social · 10/09/2026
Slides from my keynote this morning at #RustConf on the history of Rust at @oxide.computer; video to come! speakerdeck.com/bcantrill/ru...
speakerdeck.com
Rust, In Sickness & In Health
Keynote given at RustConf 2026 on September 10th, 2026 in Montreal. Video to come!
410311
James Munns @jamesmunns.com · 10/09/2026
36 weeks into the year: It's still going! Recently bumped up my activity level by trying to consistently walk 30-60m a day, it seems to be helping the progress. One graph of the last 6mo (with variance bars), one graph of the whole year (without). Down a total of 17.9kg/39.4lbs, and 62.9% done.
A graph showing weight over time.

It starts in March, at around 98.3kg, and ends mid-Sept at around 85.5kg.

There is a red trendline that is largely moving downwards, with a somewhat wavy plateau between mid-May and early July.

There are green "variance" bars showing the daily weight measurements being mostly below but sometimes above the trendline.A similar graph as before, but shows a red trendline that starts at 103.8kg on Jan 1st, and ends at 85.5kg today Sept 10th.

Instead of green variance bars, there is a hard-to-see grey line showing the daily weights. It is much noisier than the red trendline.
3220
James Munns @jamesmunns.com · 09/09/2026
Damn. Gotta move some personal sites/blogs, as well as the CDN for @sdr-podcast.com off of @digitalocean.com. I'll probably just finish the partial move I started a while back to Hetzner.
1361
James Munns @jamesmunns.com · 06/09/2026
There was a new streetlight manifesto EP I totally missed! music.apple.com/de/album/hal...
music.apple.com
Halfway to the Place Behind the Stars by Streetlight Manifesto on Apple Music
Album · 2026 · 6 Songs
031
Reposted by James Munns
victoria scott @victoriascott.bsky.social · 06/09/2026
God. New albums from Interpol, Bloc Party, Death Cab all this year… welcome back 2004
101656
Reposted by James Munns
Tim @timburga.com · 06/09/2026
Bailey is a goddamn treasure and atproto is fortunate to have him nothing - NOTHING - that is lacking in your sad life excuses being an asshole to him he's good people, doing tremendous work for everyone's collective benefit, and if you don't see that then go to Threads
0916
Reposted by James Munns
Sam Rose @samwho.dev · 06/09/2026
Weird request: we’re looking for a specific monkey teddy. We got this one when our eldest was born and he didn’t care about it until a few months ago and now he can’t exist without it. But we only have one and we want a backup. We have searched everywhere and can’t find it. Any leads appreciated 🙏
A photograph of the monkey teddy in question.
61517
James Munns @jamesmunns.com · 05/09/2026
[rustdoc waiting room] Me: [chanting] server, server- Rustdoc: server, SERVER Implementors: [pounding their clipboards] SERVER, SERVER, SERVER!
Screenshot of rustdoc output

nprpc::composite
Trait Server
Source

pub trait Server:
    Server
    + Server
    + Server {
    // Required method
    fn process_one<'buf>(
        &mut self,
        hdr: Header,
        body: &[u8],
        output: &'buf mut [u8],
    ) -> Result<&'buf mut [u8], Error>;
}

Required Methods
Source
fn process_one<'buf>(
    &mut self,
    hdr: Header,
    body: &[u8],
    output: &'buf mut [u8],
) -> Result<&'buf mut [u8], Error>

Implementors
Source
§
impl<T> Server for T
where
    T: Server + Server + Server,
2840
Reposted by James Munns
Simen E. Sørensen @simenzhor.bsky.social · 01/09/2026
Some hopefully interesting reflections on how the team at my day job made the world’s first functional safety certified product based on Rust. This was a massive undertaking, and I think some of you might appreciate it 🦀 #rust #rustlang #safety #functionalsafety www.sonair.com/journal/how-...
sonair.com
Sonair | Journal | How we developed the world's first safety-certified product written in Rust – and why we went bare metal
We just certified it. ADAR One is the first safety-certified embedded system built in Rust. I want to share how we got here, for other Rust developers who are looking at safety-critical work and wonde...
174
James Munns @jamesmunns.com · 04/09/2026
Talking to @thejpster.org.uk, and we realized that ARM processors have supported out-of-order execution for longer now than they were exclusively in-order. ARM1 was 1985 ARM1136J(F)-S (first OOO core) was 2002 17 years vs 23 years.
1210
James Munns @jamesmunns.com · 03/09/2026
👍 is still a habit for me, despite trying to use 🫡 and 🙏 whenever I think about it.
3161
James Munns @jamesmunns.com · 03/09/2026
I feel like a useful labeler could be "this user received N replies in the last 24 hours", instead of "this user replied N times in the last 24 hours". Or even "this user has a >10:1 reply rx:tx rate". I feel like it might be easier to see who is getting (regularly, intermittently) overwhelmed atm.
290
Reposted by James Munns
Colin @colin-fraser.net · 03/09/2026
attention Fastmail executive team: please continue to be normal. If you have any thoughts about anything other than emails, please keep them to yourselves. Please do not fund any external projects that have anything to do with anything other than emails. Thank you.
321127
James Munns @jamesmunns.com · 02/09/2026
> "Target triple" has been renamed to "target tuple" across the project Oh shiiiiiiit
3877
Reposted by James Munns
snek @snek.dev · 01/09/2026
bit of an update, it's been a few months now since I parted ways with Deno, and I'm starting to actively look for jobs again! I'm pretty good with big systems, compilers, and embedded. especially if rust or elixir are involved :)
33811
Reposted by James Munns
James Munns @jamesmunns.com · 21/02/2026
Shout out to github.com/dani-garcia/..., which: * Is a Rust compatible server for the Bitwarden password manager * Is easy to self-host * Still works with the official desktop/mobile/browser apps, which also work to store/sync TOTP It means I now have password syncing, across devices, self hosted!
github.com
GitHub - dani-garcia/vaultwarden: Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs
Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs - dani-garcia/vaultwarden
3634
Reposted by James Munns
Andrew Lilley Brinker @alilleybrinker.com · 31/08/2026
Hey @1password.bsky.social, time to change course.
alilleybrinker.com
1Password Supports the Ethnic Cleansing of Europe — Andrew Lilley Brinker
1Password has committed $300,000 to Omarchy. This is unacceptable and must be rescinded.
541518621
Reposted by James Munns
Mara Bos @mara.bsky.social · 31/08/2026
We lowered the ticket prices for RustWeek! Individual tickets are now 199 instead of 249 euro. ✨ Additionally, we added a checkbox for an extra 100 euro discount, bringing the ticket price to just 99 euros for those who can't afford the full price. 💛
Radio button: Conference Ticket - Privately-paid tickets (also for freelancers) - €199.00

Checkbox: I can’t afford this, give me €100 discount
39314
Reposted by James Munns
Erk @erk.dev · 30/08/2026
This blog post is bit of a culmination about me thinking about `n..` ranges in Rust for way too long time. It is about why I think the current semantics for the iterator are wrong. erk.dev/2026/08/30/r...
erk.dev
RangeFrom, Part 2..: What I think is wrong about the design
A trip around my opinions about the RangeFrom type and why I think the iterator has a wrong design
1276
James Munns @jamesmunns.com · 29/08/2026
A thread about my opinions on non-self-describing types, API versioning, and comms in general (nothing new for folks who have heard these rants before". It's a thread that should be a blog post and maybe a podcast episode and maybe a conference talk. But for now it's a thread.
1181
Reposted by James Munns
reto @galactic-forensics.space · 28/08/2026
My first real Pico de Gallo test: successfully set the voltage on an LTC2686 DAC. Development with Pico de Gallo is going to be very fun :) Next thing up: write an actual Rust driver with Device Driver v2. Thanks to @balbi.sh and @diondokter.nl for these amazing tools! #EmbeddedRust #Rust
Bottom left shows a Pico de Gallo in a case connected to a colorful ribbon cable. Some wires of ribbon cable connects to a LTC2686 dev board in the middle. Furthermore, various probes are connected to the dev board to supply the required voltages. A voltmeter on the right, which is connected to an output channel on the LTC2686 shows 2.499 V.
391
Reposted by James Munns
Mara Bos @mara.bsky.social · 27/08/2026
RustNL's Rust Maintainer Team has grown and now consists of 14 people, including three interns! ✨️ rustnl.org/maintainers/ Together, these people are either the author or a reviewer of more than 30% of all pull requests on the rust-lang/rust repository:
A table showing that the people of RustNL were involved as author or reviewer or approver of more than 30% of all pull requests merged in the past four months.
212519
Reposted by James Munns
Dane @besaid.zone · 26/08/2026
labeller that hides discourse from your feeds, who is building this
4182
Reposted by James Munns
Keenan Johnson @keenanjohnson.com · 25/08/2026
Where my pcb / circuit board design people's at? Is bsky a place for that or nah?
5205
Reposted by James Munns
Tyler Mandry @tmandry.dev · 25/08/2026
I never expected this
a screenshot of Rust PR #155499 to stabilize the never type, showing it was merged 2 hours ago
1606
Reposted by James Munns
utopia deferred @utopia-defer.red · 23/08/2026
They should make a software culture that isn’t hegemonic hitlerism
735646