Sean McArthur
banner
seanmonstar.com
Sean McArthur
@seanmonstar.com
1.4K followers 37 following 67 posts
Open Source maintainer of the rust-lang @hyper.rs. More at seanmonstar.com
Posts Media Videos Starter Packs
When I started learning, I fully embraced `new` to start, and `describe` when I'm done (or describe with a wip name if it's taking a while). Instead of `commit` always leaving me on an empty change.

Perhaps a shell prompt could note when @ is empty? I dunno, I don't have something that fancy yet.
Reposted by Sean McArthur
New blog post: Cancelling async #rustlang!

This is a written version of my talk at #RustConf 2025, where I talk about the joys and sorrows of future cancellations in Rust, with lessons from our work at @oxide.computer. Includes a video of the talk as well. Check it out!
Cancelling async Rust ꞏ sunshowers
Correctness in the face of cancellations: a written version of my talk at RustConf 2025.
sunshowers.io
Reposted by Sean McArthur
We received reports of a phishing campaign targeting crates​.io users. Do not click on links asking to authenticate to protect your account. More information: blog.rust-lang.org/2025/09/12/c...
crates.io phishing campaign | Rust Blog
Empowering everyone to build reliable and efficient software.
blog.rust-lang.org
I was recently on the Netstack.fm podcast, and had a fun time talking with Glen about:

- the beginning of hyper, and async #rustlang
- as the ecosystem grew
- the development of crates like hyper-util, headers, warp, reqwest
- being independent
- 5 years from now

seanmonstar.com/blog/podcast...
Podcast: Netstack.fm, story of Rust's networking with hyper
Last week I was a guest on the Netstack podcast. We talked abit about how I got into Rust, how async Rust developed, and the story behind hyper and its surro...
seanmonstar.com
Reposted by Sean McArthur
Here's the write up for the `warp` v0.4 release!

- Filters remain the focus
- Upgrade to hyper v1
- Crate features on a diet
- Iterating on the Server builder (and API design in general)

seanmonstar.com/blog/warp-v04/

#rustlang
warp v0.4
Yesterday, warp v0.4 was released. warp is a Rust web server framework, with a focus on functional programming and type system routing.
seanmonstar.com
Here's the write up for the `warp` v0.4 release!

- Filters remain the focus
- Upgrade to hyper v1
- Crate features on a diet
- Iterating on the Server builder (and API design in general)

seanmonstar.com/blog/warp-v04/

#rustlang
warp v0.4
Yesterday, warp v0.4 was released. warp is a Rust web server framework, with a focus on functional programming and type system routing.
seanmonstar.com
So far we've backported important fixes to #rustlang hyper v0.14, but after almost 2 years, I think that's pretty close to done.

Please upgrade to v1 to get the latest fixes.
Reposted by Sean McArthur
Just released #rustlang warp v0.4! 🦀

This includes an upgrade to hyper v1, and cleans up the crate features a bit so you can choose what to enable (less is on by default).

Most of the API stayed the same (the examples and tests barely needed any changing). 🚀

github.com/seanmonstar/...
Release v0.4.0 · seanmonstar/warp
Changes: Upgrade to hyper, http, and http-body to v1. Remove multipart and websocket features from being enabled by default. Put warp::serve() behind a server feature, not enabled by default. Put ...
github.com
Just released #rustlang warp v0.4! 🦀

This includes an upgrade to hyper v1, and cleans up the crate features a bit so you can choose what to enable (less is on by default).

Most of the API stayed the same (the examples and tests barely needed any changing). 🚀

github.com/seanmonstar/...
Release v0.4.0 · seanmonstar/warp
Changes: Upgrade to hyper, http, and http-body to v1. Remove multipart and websocket features from being enabled by default. Put warp::serve() behind a server feature, not enabled by default. Put ...
github.com
Hm, I wonder why that change was made...

git blame: "Me, 8 years ago"

*emotional damage*
Reposted by Sean McArthur
I’ve been maintaining the Rust flamegraph implementation for three years, releasing about every 3 months on average. Consider sponsoring my work if it’s been valuable to you(r team).
Cargo flamegraph's new version uses Xcode's tracer under the hood, so flamegraphing your rust code no longer requires sudo (which then messes up permissions on your build artifacts). It's a small thing but it's made flamegraphing my Rust code on MacOS so much more pleasant.
Exploring easy HTTP redirects in #rustlang reqwest! 🦀

This adds a builder to configure how retries work, while helping you do so responsibly. And the goal is to upstream what we can to tower.

seanmonstar.com/blog/reqwest...
reqwest retries
One part of working on a more modular reqwest was adding support for retries.
seanmonstar.com
This transitively (ish) includes a happy eyeballs fix that improves hickory-dns in reqwest.

Give it a try, it should be faster and better for your system overall (and it'd be nice to make it the default on reqwest).
New #rustlang reqwest v0.12.16 out now! 🦀

- Several HTTP/3 improvements.
- A redirect limit off-by-1 fix.
- Add headers for a proxy.

Includes internal refactors of types now in hyper-util or tower, like redirects, proxy matchers, and proxy connectors!

github.com/seanmonstar/...
Release v0.12.16 · seanmonstar/reqwest
Highlights Add ClientBuilder::http3_congestion_bbr() to enable BBR congestion control. Add ClientBuilder::http3_send_grease() to configure whether to send use QUIC grease. Add ClientBuilder::http3...
github.com
New #rustlang hyper-util v0.1.12 out now!

This one has the things. Part of making reqwest "more modular".

- A proxy matcher type that can use environment/system variables.
- SOCKS and HTTP Tunnel connector adapters.
- Graceful shutdown made more flexible.
- Bug fixes!

github.com/hyperium/hyp...
Release v0.1.12 · hyperium/hyper-util
tl;dr Add client::legacy::proxy::Tunnel connector that wraps another connector with HTTP tunneling. Add client::legacy::proxy::{SocksV4, SocksV5} connectors that wraps another connector with SOCKS...
github.com
I have this suspicion that as JavaScript devs get a taste through TypeScript, they started to desire a much better type system and end up in #rustlang.

Was that you?