[package]
name = "packet_parser"
version = "3.0.1"
edition = "2024"
authors = ["Cyprien Avico avicocyprien@yahoo.com"]
description = "A powerful and modular Rust crate for network packet parsing."
license = "MIT"
repository = "https://github.com/Akmot9/Packet-parser"
categories = ["network-programming", "parsing", "development-tools"]
readme = "README.md"
homepage = "https://github.com/Akmot9/Packet-parser"
keywords = ["network", "packets", "parser", "cybersecurity", "Rust"]
exclude = [".github/", ".gitignore", "tests/", "benches/", "tools/", "perf_by_version.json"]


[dependencies]
thiserror = "2.0.18"
pcap-file = "2.0.0"
serde = { version = "1.0.228", features = ["derive"] }
uuid = { version = "1.23.4", default-features = false, features = ["v4"] }
chrono = "0.4.45" # for ntp timestamp
aquamarine = { version = "0.6.0", optional = true }
hex = "0.4.3"

[dev-dependencies]
criterion = { version = "0.8.2", features = ["html_reports"] }
pnet = "0.35.0"
hex = "0.4.3"
serde_json = "1.0.150"
pcap = "2.4.0"

[workspace]
members = ["benchmark_db", "ingestor","integration_test", "see_unparsable"] # Spécifie que ta crate a un workspace avec d'autres projets
exclude = ["tools/verbench"] # Harnais de bench multi-versions : son Cargo.toml est généré par run.sh

[profile.release]
opt-level = 3         # Highest speed optimization
lto = "fat"           # Link Time Optimization for best performance
codegen-units = 1     # Best for performance (slower build)
panic = "abort"       # Optional: slightly faster, smaller
strip = false         # Keep symbols if you want better profiling/debugging
incremental = false   # Ensures full optimization
debug = false         # No debug info in release
rpath = false         # No runtime path in binary

[features]
default = []
doc-diagrams = ["dep:aquamarine"]
parse_timing = []
