SkillAgentSearch skills...

Listenfd

Helper crate to work with systemd/catflap socket activation

Install / Use

/learn @mitsuhiko/Listenfd
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

listenfd

Crates.io License rustc 1.42.0 Documentation

listenfd is a crate that provides support for working with externally managed and passed file descriptors. This lets you work with systems that support socket activation or similar.

Currently this supports systemd (including systemd-socket-activate) on Unix and systemfd on Unix and Windows. systemfd is very convenient in combination with cargo-watch or watchexec for development purposes whereas systemd is useful for production deployments on linux.

Example

use listenfd::ListenFd;

let mut listenfd = ListenFd::from_env();
let mut server = make_a_server();

// if we are given a tcp listener on listen fd 0, we use that one
server = if let Some(listener) = listenfd.take_tcp_listener(0)? {
    server.listen(listener)
// otherwise fall back to local listening
} else {
    server.bind("127.0.0.1:3000")?
};

You can then use this with cargo-watch or watchexec and systemfd:

$ systemfd --no-pid -s http::3000 -- cargo watch -x run
$ systemfd --no-pid -s http::3000 -- watchexec -r -- cargo run

Now systemfd will open the socket and keep it open. cargo watch will recompile the code on demand and the server will pick up the socket that systemfd opened. No more connection resets.

License and Links

View on GitHub
GitHub Stars234
CategoryDevelopment
Updated26d ago
Forks18

Languages

Rust

Security Score

95/100

Audited on Mar 5, 2026

No findings