https://github.com/jake-shadle/xdp
AF_XDP socket support without C
https://github.com/jake-shadle/xdp
Last synced: 4 months ago
JSON representation
AF_XDP socket support without C
- Host: GitHub
- URL: https://github.com/jake-shadle/xdp
- Owner: Jake-Shadle
- License: apache-2.0
- Created: 2024-10-23T08:21:24.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-01-29T10:22:31.000Z (4 months ago)
- Last Synced: 2025-01-29T11:27:06.882Z (4 months ago)
- Language: Rust
- Size: 48.8 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# `📨 xdp`
**`AF_XDP` socket support in Rust**
[](https://crates.io/crates/xdp)
[](https://docs.rs/xdp)
[](https://deps.rs/repo/github/Jake-Shadle/xdp)
[](https://github.com/Jake-Shadle/xdp/actions?workflow=CI)This crate allows for the creation and usage of [AF_XDP] sockets on Linux, along with the attendant memory mappings and rings.
The primary difference between this crate and the other XSK/XDP crates available on crates.io is that this crate does not depend on any C code.
## Why not use this crate?
This crate is still early days, and focused on the needs of [Quilkin](https://github.com/googleforgames/quilkin), so feature requests or bug fixes that don't pertain to it would most likely need outside contribution. There are already several other Rust crates available that (probably) have more full featured support.
## Features
- [x] - Network interface enumeration and capability querying
- [x] - Basic Umem support
- [ ] - Shared Umem support
- [x] - Fill, RX, TX, Completion rings
- [x] - [TX checksum offload/completion timestamp](https://docs.kernel.org/networking/xsk-tx-metadata.html)
- [ ] - [RX metadata](https://docs.kernel.org/networking/xdp-rx-metadata.html)## License
Licensed under either of
- Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or )
- MIT license ([LICENSE-MIT](LICENSE-MIT) or )at your option.
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
[AF_XDP]: https://docs.ebpf.io/linux/concepts/af_xdp/