| Crates.io | ingot |
| lib.rs | ingot |
| version | 0.1.1 |
| created_at | 2025-04-29 11:36:49.744821+00 |
| updated_at | 2025-07-11 10:08:09.483295+00 |
| description | Bare metal packet parsing |
| homepage | |
| repository | https://github.com/oxidecomputer/ingot |
| max_upload_size | |
| id | 1653449 |
| size | 89,939 |
Ingot is a framework for writing network packet and header parsers, designed to support hybrid zero-copy and owned packet representations.
The library is built on top of zerocopy.
Ingot takes heavy inspiration from libpnet, with some key differences to support OPTE:
UdpRef, UdpMut). Setting and getting fields from present or pushed headers is consistent and easy.IPv6 struct.mblk_ts. Accordingly, individual headers do not have payload fields.Because ingot is based upon the third-party library zerocopy, compiling your binaries with LTO enabled is crucial for maximising performance. To do so, include the following in your Cargo.toml:
[profile.release]
debug = 2
lto = true
alloc use.Ingot macro, you must import the zerocopy crate into your own project.This project is available under the terms of the MPL 2.0 license.