unix-cred

Crates.iounix-cred
lib.rsunix-cred
version0.1.1
sourcesrc
created_at2020-11-08 20:29:29.126412
updated_at2021-01-03 16:29:45.698853
descriptionA library that simplifies reading peer credentials from Unix sockets.
homepage
repositoryhttps://github.com/cptpcrd/unix-cred-rs
max_upload_size
id310040
size30,578
(cptpcrd)

documentation

README

unix-cred

crates.io Docs GitHub Actions Cirrus CI codecov

A Rust library that simplifies reading peer credentials from Unix sockets.

Example:

use std::os::unix::net::UnixStream;

fn main() {
    let (sock, _peer) = UnixStream::pair().unwrap();

    // This will print the UID/GID of the current process
    // (since it's in possession of the other end)
    let (uid, gid) = unix_cred::get_peer_ids(&sock).unwrap();
    println!("{} {}", uid, gid);

    // Retrieving the PID is not supported on all platforms
    // (and on some versions of some platforms None will be returned)
    // See the documentation for more details
    let (pid, uid, gid) = unix_cred::get_peer_pid_ids(&sock).unwrap();
    println!("{:?} {} {}", pid, uid, gid);
}

Platform support

The following platforms have first-class support (tests are run in CI, and everything should work):

  • Linux (glibc and musl)
  • FreeBSD
  • macOS

The following platforms have second-class support (built, but not tested, in CI):

  • NetBSD

The following platforms have third-class support (not even built in CI):

  • OpenBSD
  • DragonFlyBSD
Commit count: 49

cargo fmt