This release introduces the Buffer
trait, which is used in read
, pread
, recv
, recvfrom
, getrandom
, readlinkat_raw
, epoll::wait
, kevent
, port::getn
, getxattr
, lgetxattr
, fgetxattr
, listxattr
, llistxattr
, and flistxattr
, and adds support for reading data into uninitialized buffers, as well as safely reading data into the spare capacity of Vec
s.
This release also simplifies the way network addresses are handled. Instead of having separate functions with _v4
, _v6
, _unix
, _xdp
, and now _netlink
suffixes, rustix now uses a SocketAddrArg
trait so that functions such as bind
, connect
, sendto
, and sendmsg_addr
can accept any type of address, and are easier to extend to new address types in the future.
And, this release simplifies the ioctl
API, replacing opcode wrapper types with const generics.
This updates several APIs to add Linux 6.13 features, and raw linux-raw-sys types are no longer exposed in the public API, so it should be easier to stay up to date with new Linux releases.
And many more new features, bug fixes, and cleanups. See the CHANGES.md file for the full list of breaking changes.