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_t
s. 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.