finds.dev← search

// the find

mitsuhiko/systemfd

★ 651 · Rust · Apache-2.0 · updated Jan 2025

Development helper utility for helping with auto reloading for projects supporting systemd socket activation

systemfd is a small utility that opens sockets and passes them to child processes using the systemd socket activation protocol, so the child can restart without dropping connections. It's aimed at Rust developers who want zero-downtime hot-reloading during development, paired with cargo-watch or watchexec. Works on Linux, macOS, and Windows.

The core idea is tight and well-scoped — it does exactly one thing and the protocol reuse (LISTEN_FDS/LISTEN_PID) means any server that supports systemd socket activation in prod gets dev reloading for free. Windows support is non-trivial and they actually did the work, implementing a local RPC server with a secret key rather than pretending the problem doesn't exist. The listenfd companion crate makes server-side integration straightforward. From mitsuhiko, so it's not abandonware — he actually uses this in his own projects.

651 stars and 18 forks in however many years is a signal that the audience is narrow; if your server isn't already socket-activation-aware, you have to modify it before this helps you at all. The Windows protocol is explicitly described as 'somewhat of a hack' in the README, which is honest but not reassuring for production-adjacent tooling. No TLS socket passing — the https type just prints an https URL, it doesn't actually handle TLS, which is a gotcha. The project is essentially feature-complete and in maintenance mode, so if you hit an edge case, you're probably writing the fix yourself.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →