# Changelog

All notable changes to `quick_afxdp` will be documented in this file.

## [0.4.1] - 2025-12-02

### Added
- Public `SocketRx::fd()` and `SocketTx::fd()` accessors so callers can safely
  obtain the AF_XDP socket file descriptor without reaching into libbpf internals.
- `SocketOptions::inhibit_prog_load` flag to expose
  `XSK_LIBBPF_FLAGS__INHIBIT_PROG_LOAD`, allowing applications that already
  manage their own XDP programs to reuse `quick_afxdp` without libxdp attaching
  its default dispatcher.
- More flexible `Umem::attach` signature that accepts any `AsRawFd`, easing
  integration with wrapper types.

### Fixed
- Removed internal polling for `xdp_rxq_info` in dependent code by making the
  crate itself neutral about driver sysfs quirks; this keeps AF_XDP socket
  creation functional even on drivers that do not expose that metadata file.

### Notes
- Forked from [`aterlo/afxdp-rs`](https://github.com/aterlo/afxdp-rs) and
  renamed to `quick_afxdp` to distribute AF_XDP enhancements tailored for the
  `quick_xdp-research` project. The crate remains Apache-2.0 licensed; see
  `LICENSE` for details.

