PackageTrack
Sign in Get early access

uds

A unix domain socket crate that supports abstract addresses, fd-passing and seqpacket sockets.

0.4.2 9.5M downloads/mo #3199 most downloaded on crates.io tormol/uds

What this package is like to depend on

Last release 3 years ago

no release in 18 months

Ships unpredictably

gaps range from 8 days to 2.4 years

Nearly every release is documented

notes for 14 of 14 stable releases

Nothing withdrawn

no release was ever pulled

7 years old

14 releases · first in 2019

0 releases in the last 12 months

see the full history below

Release timeline

14 releases · Nov 2019 to Dec 2023
2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 14
  1. 0.4.2 31 Dec 2023
    Release notes
    • Reduce max path length by one on Apple OSes, Illumos and Solaris. (#19)
      While non-NUL-terminated paths work, the man pages says paths must be NUL-terminated.
      These OSes support arbitrarily long paths, and this library can't represent those, so it already only supported a subset of all possible path addresses.
    • Fix UnixSocketAddr::from_raw() never having worked. (#18)
    • Fix potentiall soundness issues. (#13 and #14)
    Open source →
  2. 0.4.1 20 Aug 2023
    Release notes
    • Tokio support is back, now for tokio 1.*.
    • There's now also tokio versions of the extensions traits: They don't have any methods that would be async, such as send_fds() or receive_fds(), but allow binding and connecting to uds::UnixSocketAddrs, and getting information about the peer.
    Open source →
  3. 0.4.0 14 Aug 2023
    Release notes
    • Remove tokio support. Because 0.2 is not much used at this point. 1.* support might be implemented later.
    • Remove mio 0.6, mio-uds & mio 0.7 support. To simplify code and reduce combinations of features to test.
      The feature for mio 0.8 support remains "mio_08": "mio" is reserved for mio 1.0.
    Open source →
  4. 0.3.0 14 Aug 2023
    Release notes
    • Don't return truncatedness from UnixSeqpacketConn and tokio::UnixSeqpacketConns recv() and peek() methods. For consistency with the return types of similar methods on stream and datagram types.
      Use recv_vectored() with empty fd buffer if you want to know whether the packet was truncated.
    • Remove default impl of UnixDatagramExt::bind_unix_addr(), and remove Sized bound on the trait.
    • Stop quoting Unnamed in UnixSocketaddr's Debug impl.
    • Add mio_08 feature, for using this library with mio 0.8.
    • Require Rust 1.63. (Mainly to make CI pass, so older versions will likely work.)
    Open source →
  5. 0.2.7 14 Aug 2023
    Release notes

    Out-of-bounds writes could have happened if sending both credentials
    and file descriptors, but sending credetials is not exposed,
    so that code is unreachable. Puh.

    Open source →
    Release notes
    • Fix potentialy unaligned accesses and slices in release mode. (Thanks @domenukk!)
      Would previously panic in debug mode, but now non-aligned payloads are supported.
    • Fix large ancillary buffers not being zero-initialized when filling out a buffer to send. (Thanks @domenukk!)
    • Fix using wrong macro when calculating required ancillary buffer size when sending.
      The only effect of this is was some padding on 64-bit Linux or FreeBSD would not be allocated or sent.
      This could therefore not cause out-of-bounds writes.
    Open source →
  6. 0.2.6 02 Apr 2021
    Release notes
    • Add take_error() and into_nonblocking() to tokio seqpacket types.
    • Implement AsRef to nonblocking variants for tokio seqpacket types.
    Open source →
  7. 0.2.5 01 Apr 2021
    Release notes
    • Add send_vectored() and recv_vectored() to ::tokio::UnixSeqpacketConn.
    • Add peek() and peek_vectored() to ::tokio::UnixSeqpacketConn.
    • Add send_fds() and recv_fds() to ::tokio::UnixSeqpacketConn.
    • Implement AsRawfd and IntoRawFd for tokio seqpacket types.
    • Add fallible from_raw_fd() to tokio seqpacket types.
    • Add from_nonblocking() to ::tokio::UnixSeqpacketListener.
    • Fix initial_peer_credentials() impl for Illumos & Solaris writing to stdout.
    Open source →
  8. 0.2.4 24 Mar 2021
    Release notes
    • Implement peer credentials on NetBSD and DragonFly BSD.
    • Add initial_peer_selinux_context().
    • Add initial_peer_credentials() to ::tokio::UnixSeqpacketConn.
    • Add bind_addr() and local_addr() to ::tokio::UnixSeqpacketListener.
    • Add connect_addr(), connect_from_addr(), local_addr() and peer_addr() to ::tokio::UnixSeqpacketConn.
    Open source →
  9. 0.2.3 06 Mar 2021
    Release notes
    • Add send_to_unix_addr(), recv_from_unix_addr(), peek_from_unix_addr() and vectored variants to UnixDatagramExt.
    • Add UnixDatagramExt::bind_unix_addr(). (with a fallback default impl that creates a nonblocking socket)
    • Add as_pathname() and as_abstract() to UnixSocketAddr.
    • Add name() to UnixSocketAddr and rename UnixSocketAddrRef to AddrName, with a type alias for backwards compatibility.
    • Add from_raw_bytes() and as_raw_bytes() to UnixSocketAddr.
    • List DragonFly BSD as supported after testing on it.
    Open source →
  10. 0.2.2 31 Jan 2021
    Release notes
    • Compile on 64-bit Android (#4).
    • Support OpenBSD (including peer credentials).
    • Fix UnixDatagramExt::recv_fds_from() always returning unnamed adress.
    • Fix UnixSocketAddr::as_ref() and its Debug impl misrepresenting some unnamed addresses as abstract on operating systems that don't have abstract addresses.
    • Fix UnixSocketAddr::as_ref() and its Debug impl having trailing NULs in paths in rare cases. (this has only happened on OpenBSD so far).
    • Avoid invoking accept4() on x86 Android (based on mio #1445).
    Open source →
  11. 0.2.1 15 Nov 2020
    Release notes
    • Add timeout methods to blocking seqpacket types.
    • Add take_error() to all seqpacket types.
    • Add peek() and peek_vectored() to seqpacket connection types.
    • Remove outdated WiP section of README saying NetBSD and Illumos aren't supported.
    Open source →
  12. 0.2.0 21 Oct 2020
    Release notes
    • Require Rust 1.39.
    • Add mio 0.7 support, behind optional feature mio_07.
      (mio 0.6 is still supported and enabled with mio feature.)
    • Add tokio seqpacket types, behind optional feature tokio. (by @jmagnuson).
    • Add shutdown() to seqpacket connection types (by @jmagnuson).
    • Fix creating sockets failing on Illumos & Solaris. (This crate was setting close-on-exec in an unsupported way.)
    • Support peer credentials on Illumos / Solaris.
    • Enable close-on-exec and non-blocking mode atomically on all OSes where prossible.
      (with SOCK_CLOEXEC, SOCK_NONBLOCK and accept4())
      The only place missing these are macOS (and anything else by Apple).
    • Mark NetBSD and Illumos as supported.
    Open source →
  13. 0.1.0 16 Feb 2020
    Release notes
    • Rename UnixSocketAddr::unspecified() to new_unspecified().
    • Add peer_credentials().
    • Support macOS and FreeBSD.
    Open source →
  14. 0.0.0 23 Nov 2019
    Release notes
    • Add UnixSocketAddr to support abstract addresses.
    • Add seqpacket types.
    • Add extension traits to support FD passing (and to create and accept UnixSocketAddr)
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive