[package]
edition = "2024"
rust-version = "1.95"
name = "netring"
version = "0.28.0"
authors = ["Marc Pardo <p13marc@gmail.com>"]
build = false
exclude = [
"CLAUDE.md",
"SPEC.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-performance zero-copy packet I/O for Linux (AF_PACKET TPACKET_V3 + AF_XDP)"
homepage = "https://github.com/p13marc/netring"
documentation = "https://docs.rs/netring"
readme = "README.md"
keywords = [
"packet",
"capture",
"af_packet",
"af_xdp",
"zero-copy",
]
categories = [
"network-programming",
"os::linux-apis",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/p13marc/netring"
resolver = "2"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
ad-protocols = [
"smb",
"kerberos",
"ldap",
"rdp",
]
af-xdp = []
all-parsers = [
"http",
"dns",
"tls",
"icmp",
"smb",
"kerberos",
"ldap",
"rdp",
"dhcp",
"ssdp",
"netbios-ns",
"ssh",
"quic",
]
arp = [
"flow",
"flowscope/arp",
]
asset = [
"flow",
"flowscope/asset",
]
asset-protocols = [
"dhcp",
"ssdp",
"netbios-ns",
"mdns",
]
bench-zero-alloc = [
"dep:dhat",
"flow",
"tokio",
"parse",
]
cdp = [
"flow",
"flowscope/cdp",
]
channel = ["dep:crossbeam-channel"]
default = []
dhcp = [
"flow",
"flowscope/dhcp",
]
dnp3 = [
"flow",
"flowscope/dnp3",
]
dns = [
"flow",
"flowscope/dns",
]
emit = [
"flow",
"flowscope/emit",
]
eve-sink = [
"emit",
"dep:serde_json",
"flowscope/emit-eve",
"flowscope/community-id",
]
file-hash = ["flowscope/file-hash"]
flow = [
"parse",
"flowscope/tracker",
"flowscope/reassembler",
"flowscope/session",
"flowscope/community-id",
"dep:bytes",
"dep:ahash",
]
ftp = [
"flow",
"flowscope/ftp",
]
http = [
"flow",
"flowscope/http",
]
icmp = [
"flow",
"flowscope/icmp",
]
infra-protocols = [
"ntp",
"snmp",
"tftp",
"radius",
]
integration-tests = []
ipfix = [
"flow",
"tokio",
"flowscope/ipfix-export",
]
ja4plus = [
"tls",
"flowscope/ja4plus",
]
kerberos = [
"flow",
"flowscope/kerberos",
]
ldap = [
"flow",
"flowscope/ldap",
]
lldp = [
"flow",
"flowscope/lldp",
]
mdns = [
"flow",
"flowscope/mdns",
]
metrics = ["dep:metrics"]
ml-features = [
"flow",
"flowscope/ml-features",
]
modbus = [
"flow",
"flowscope/modbus",
]
monitor = [
"tokio",
"channel",
"flow",
"parse",
"metrics",
"http",
"dns",
"tls",
"icmp",
"arp",
"ndp",
"lldp",
"cdp",
"asset",
"p0f",
"ad-protocols",
"asset-protocols",
"ssh",
"quic",
"emit",
"serde",
]
monitor-lite = [
"tokio",
"channel",
"flow",
]
monitor-quickstart = [
"tokio",
"channel",
"flow",
"parse",
"pcap",
"metrics",
"http",
"dns",
"tls",
"icmp",
"arp",
"ndp",
"lldp",
"cdp",
"asset",
"p0f",
"ad-protocols",
"asset-protocols",
"ssh",
"quic",
"emit",
"eve-sink",
"ocsf-sink",
"file-hash",
"serde",
]
ndp = [
"flow",
"flowscope/ndp",
]
netbios-ns = [
"flow",
"flowscope/netbios-ns",
]
nightly = []
nprint = [
"flow",
"parse",
"flowscope/ml-features-nprint",
]
ntp = [
"flow",
"flowscope/ntp",
]
ocsf-sink = ["dep:serde_json"]
ot-protocols = [
"modbus",
"dnp3",
]
p0f = [
"flow",
"flowscope/tcp_fingerprint",
]
parse = [
"dep:etherparse",
"flowscope/extractors",
]
pcap = ["dep:pcap-file"]
quic = [
"flow",
"flowscope/quic",
]
radius = [
"flow",
"flowscope/radius",
]
rdp = [
"flow",
"flowscope/rdp",
]
serde = [
"dep:serde",
"dep:serde_json",
"flowscope/serde",
]
sigma = [
"flow",
"dep:sigma-rust",
]
smb = [
"flow",
"flowscope/smb",
]
smtp = [
"flow",
"flowscope/smtp",
]
snmp = [
"flow",
"flowscope/snmp",
]
ssdp = [
"flow",
"flowscope/ssdp",
]
ssh = [
"flow",
"flowscope/ssh",
]
stun = [
"flow",
"flowscope/stun",
]
syslog = []
tftp = [
"flow",
"flowscope/tftp",
]
tls = [
"flow",
"flowscope/tls",
"flowscope/tls-fingerprints",
]
tokio = [
"dep:tokio",
"dep:tokio-stream",
"dep:futures-core",
]
wireguard = [
"flow",
"flowscope/wireguard",
]
xdp-loader = [
"af-xdp",
"dep:aya",
]
yara = [
"flow",
"parse",
"dep:yara-x",
]
yara-x = ["dep:yara-x"]
[lib]
name = "netring"
path = "src/lib.rs"
[[example]]
name = "active_flows_snapshot"
path = "examples/flow/active_flows_snapshot.rs"
required-features = [
"tokio",
"flow",
"parse",
]
[[example]]
name = "async_bridge"
path = "examples/async_basics/bridge.rs"
required-features = ["tokio"]
[[example]]
name = "async_capture"
path = "examples/async_basics/capture.rs"
required-features = ["tokio"]
[[example]]
name = "async_fanout_workers"
path = "examples/scaling/async_fanout_workers.rs"
required-features = [
"tokio",
"flow",
"parse",
]
[[example]]
name = "async_filter"
path = "examples/filter/async_filter.rs"
required-features = [
"tokio",
"flow",
"parse",
]
[[example]]
name = "async_flow_channel"
path = "examples/flow/channel.rs"
required-features = [
"tokio",
"flow",
]
[[example]]
name = "async_flow_conversations"
path = "examples/flow/conversations.rs"
required-features = [
"tokio",
"flow",
]
[[example]]
name = "async_flow_filter"
path = "examples/flow/filter.rs"
required-features = [
"tokio",
"flow",
]
[[example]]
name = "async_flow_history"
path = "examples/flow/history.rs"
required-features = [
"tokio",
"flow",
]
[[example]]
name = "async_flow_idle_per_key"
path = "examples/flow/idle_per_key.rs"
required-features = [
"tokio",
"flow",
]
[[example]]
name = "async_flow_keys"
path = "examples/flow/keys.rs"
required-features = [
"tokio",
"parse",
]
[[example]]
name = "async_flow_summary"
path = "examples/flow/summary.rs"
required-features = [
"tokio",
"flow",
]
[[example]]
name = "async_flow_with_tap"
path = "examples/flow/with_tap.rs"
required-features = [
"tokio",
"flow",
"parse",
"pcap",
]
[[example]]
name = "async_inject"
path = "examples/async_basics/inject.rs"
required-features = ["tokio"]
[[example]]
name = "async_lo_dedup"
path = "examples/async_basics/lo_dedup.rs"
required-features = ["tokio"]
[[example]]
name = "async_metrics"
path = "examples/async_basics/metrics.rs"
required-features = [
"tokio",
"metrics",
]
[[example]]
name = "async_multi_interface"
path = "examples/scaling/async_multi_interface.rs"
required-features = [
"tokio",
"flow",
"parse",
]
[[example]]
name = "async_on_tick"
path = "examples/l7/on_tick.rs"
required-features = [
"tokio",
"flow",
"parse",
]
[[example]]
name = "async_pcap_replay"
path = "examples/pcap/replay.rs"
required-features = [
"tokio",
"flow",
"parse",
"pcap",
]
[[example]]
name = "async_pcap_sessions"
path = "examples/pcap/sessions.rs"
required-features = [
"tokio",
"flow",
"parse",
"pcap",
]
[[example]]
name = "async_pipeline"
path = "examples/async_basics/pipeline.rs"
required-features = ["tokio"]
[[example]]
name = "async_signal"
path = "examples/async_basics/signal.rs"
required-features = ["tokio"]
[[example]]
name = "async_stats_monitor"
path = "examples/async_basics/stats_monitor.rs"
required-features = [
"tokio",
"flow",
]
[[example]]
name = "async_stream"
path = "examples/async_basics/stream.rs"
required-features = ["tokio"]
[[example]]
name = "async_streamext"
path = "examples/async_basics/streamext.rs"
required-features = ["tokio"]
[[example]]
name = "async_xdp"
path = "examples/xdp/async_xdp.rs"
required-features = [
"tokio",
"af-xdp",
]
[[example]]
name = "async_xdp_busy_poll"
path = "examples/xdp/async_xdp_busy_poll.rs"
required-features = [
"tokio",
"af-xdp",
]
[[example]]
name = "async_xdp_custom_program"
path = "examples/xdp/async_xdp_custom_program.rs"
required-features = [
"tokio",
"af-xdp",
"xdp-loader",
]
[[example]]
name = "async_xdp_self_loaded"
path = "examples/xdp/async_xdp_self_loaded.rs"
required-features = [
"tokio",
"af-xdp",
"xdp-loader",
]
[[example]]
name = "batch_processing"
path = "examples/basic/batch_processing.rs"
[[example]]
name = "bpf_filter"
path = "examples/filter/bpf_filter.rs"
[[example]]
name = "bridge"
path = "examples/basic/bridge.rs"
[[example]]
name = "capture"
path = "examples/basic/capture.rs"
[[example]]
name = "channel_consumer"
path = "examples/basic/channel_consumer.rs"
required-features = ["channel"]
[[example]]
name = "dns_lookups"
path = "examples/l7/dns_lookups.rs"
required-features = [
"tokio",
"dns",
]
[[example]]
name = "dns_query_burst"
path = "examples/anomaly/dns_query_burst.rs"
required-features = [
"tokio",
"dns",
]
[[example]]
name = "dns_resolved_no_connection"
path = "examples/anomaly/dns_resolved_no_connection.rs"
required-features = [
"tokio",
"dns",
]
[[example]]
name = "dpi"
path = "examples/basic/dpi.rs"
[[example]]
name = "ebpf_filter"
path = "examples/filter/ebpf_filter.rs"
[[example]]
name = "ewma_rate"
path = "examples/flow/ewma_rate.rs"
required-features = [
"tokio",
"flow",
"parse",
]
[[example]]
name = "fanout"
path = "examples/scaling/fanout.rs"
[[example]]
name = "http_session"
path = "examples/l7/http_session.rs"
required-features = [
"tokio",
"http",
]
[[example]]
name = "inject"
path = "examples/basic/inject.rs"
[[example]]
name = "low_latency"
path = "examples/basic/low_latency.rs"
[[example]]
name = "monitor_app_protocols"
path = "examples/monitor/app_protocols.rs"
required-features = [
"ftp",
"smtp",
"modbus",
"dnp3",
"stun",
"wireguard",
"tokio",
"emit",
]
[[example]]
name = "monitor_arp_watch"
path = "examples/monitor/arp_watch.rs"
required-features = [
"tokio",
"arp",
"emit",
]
[[example]]
name = "monitor_asset_discovery"
path = "examples/monitor/asset_discovery.rs"
required-features = [
"tokio",
"asset-protocols",
"emit",
]
[[example]]
name = "monitor_asset_inventory"
path = "examples/monitor/asset_inventory.rs"
required-features = [
"tokio",
"asset",
"arp",
"ndp",
"lldp",
"cdp",
"dhcp",
"ssdp",
"netbios-ns",
"mdns",
]
[[example]]
name = "monitor_async_handler"
path = "examples/monitor/async_handler.rs"
required-features = [
"tokio",
"flow",
]
[[example]]
name = "monitor_auto_backend"
path = "examples/monitor/auto_backend.rs"
required-features = [
"tokio",
"flow",
]
[[example]]
name = "monitor_basic"
path = "examples/monitor/basic.rs"
required-features = [
"tokio",
"flow",
]
[[example]]
name = "monitor_beacon_detector"
path = "examples/monitor/beacon_detector.rs"
required-features = [
"tokio",
"flow",
]
[[example]]
name = "monitor_detector_macro"
path = "examples/monitor/detector_macro.rs"
required-features = [
"tokio",
"flow",
"http",
"dns",
]
[[example]]
name = "monitor_dga_query"
path = "examples/monitor/dga_query.rs"
required-features = [
"tokio",
"flow",
"dns",
]
[[example]]
name = "monitor_ech_adoption"
path = "examples/monitor/ech_adoption.rs"
required-features = [
"tokio",
"flow",
"tls",
]
[[example]]
name = "monitor_eve_tls"
path = "examples/monitor/eve_tls.rs"
required-features = [
"monitor",
"eve-sink",
]
[[example]]
name = "monitor_eve_to_filebeat"
path = "examples/monitor/eve_to_filebeat.rs"
required-features = [
"tokio",
"flow",
"eve-sink",
]
[[example]]
name = "monitor_file_hash_dfir"
path = "examples/monitor/file_hash_dfir.rs"
required-features = [
"tokio",
"flow",
"http",
"file-hash",
]
[[example]]
name = "monitor_flow_export"
path = "examples/monitor/flow_export.rs"
required-features = ["monitor"]
[[example]]
name = "monitor_flow_risk"
path = "examples/monitor/flow_risk.rs"
required-features = [
"tokio",
"tls",
"http",
"emit",
]
[[example]]
name = "monitor_health_endpoint"
path = "examples/monitor/health_endpoint.rs"
required-features = [
"tokio",
"flow",
]
[[example]]
name = "monitor_infra_protocols"
path = "examples/monitor/infra_protocols.rs"
required-features = [
"infra-protocols",
"tokio",
"emit",
]
[[example]]
name = "monitor_ioc"
path = "examples/monitor/ioc_match.rs"
required-features = [
"tokio",
"dns",
"tls",
"http",
]
[[example]]
name = "monitor_ioc_reload"
path = "examples/monitor/ioc_hot_reload.rs"
required-features = [
"tokio",
"dns",
"tls",
"http",
]
[[example]]
name = "monitor_ja4_fingerprint"
path = "examples/monitor/ja4_fingerprint.rs"
required-features = [
"tokio",
"flow",
"http",
"ja4plus",
]
[[example]]
name = "monitor_l2_discovery"
path = "examples/monitor/l2_discovery.rs"
required-features = [
"tokio",
"lldp",
"cdp",
"emit",
]
[[example]]
name = "monitor_label_table"
path = "examples/monitor/label_table.rs"
required-features = [
"tokio",
"flow",
]
[[example]]
name = "monitor_lateral_movement"
path = "examples/monitor/lateral_movement.rs"
required-features = [
"tokio",
"ad-protocols",
"emit",
]
[[example]]
name = "monitor_layered_sinks"
path = "examples/monitor/layered_sinks.rs"
required-features = [
"tokio",
"flow",
]
[[example]]
name = "monitor_load_shedding"
path = "examples/monitor/load_shedding.rs"
required-features = [
"tokio",
"flow",
]
[[example]]
name = "monitor_metrics_export"
path = "examples/monitor/metrics_export.rs"
required-features = [
"tokio",
"flow",
"metrics",
]
[[example]]
name = "monitor_ml_features"
path = "examples/monitor/ml_features_export.rs"
required-features = [
"ml-features",
"tokio",
]
[[example]]
name = "monitor_multi_thread_default"
path = "examples/monitor/multi_thread_default.rs"
required-features = [
"tokio",
"flow",
"channel",
]
[[example]]
name = "monitor_ndp_watch"
path = "examples/monitor/ndp_watch.rs"
required-features = [
"tokio",
"ndp",
"emit",
]
[[example]]
name = "monitor_net_diagnostic"
path = "examples/monitor/net_diagnostic.rs"
required-features = [
"tokio",
"flow",
"icmp",
]
[[example]]
name = "monitor_nprint"
path = "examples/monitor/nprint_export.rs"
required-features = [
"nprint",
"tokio",
]
[[example]]
name = "monitor_ocsf"
path = "examples/monitor/ocsf_findings.rs"
required-features = [
"tokio",
"ocsf-sink",
"dns",
"tls",
]
[[example]]
name = "monitor_overload"
path = "examples/monitor/overload_signal.rs"
required-features = [
"tokio",
"flow",
]
[[example]]
name = "monitor_p0f"
path = "examples/monitor/p0f.rs"
required-features = [
"tokio",
"p0f",
"emit",
]
[[example]]
name = "monitor_pcap_replay"
path = "examples/monitor/pcap_replay.rs"
required-features = [
"tokio",
"flow",
"pcap",
]
[[example]]
name = "monitor_port_scan"
path = "examples/monitor/port_scan.rs"
required-features = [
"tokio",
"flow",
]
[[example]]
name = "monitor_quic_sni"
path = "examples/monitor/quic_sni.rs"
required-features = [
"tokio",
"quic",
"emit",
]
[[example]]
name = "monitor_report_stream"
path = "examples/monitor/report_stream.rs"
required-features = [
"tokio",
"flow",
"serde",
]
[[example]]
name = "monitor_resilience"
path = "examples/monitor/resilience.rs"
required-features = ["monitor"]
[[example]]
name = "monitor_rita_beacon"
path = "examples/monitor/rita_beacon_detector.rs"
required-features = [
"tokio",
"flow",
]
[[example]]
name = "monitor_sharded_runner"
path = "examples/monitor/sharded_runner.rs"
required-features = [
"tokio",
"flow",
]
[[example]]
name = "monitor_sigma_reload"
path = "examples/monitor/sigma_hot_reload.rs"
required-features = [
"sigma",
"dns",
"tls",
"http",
"tokio",
]
[[example]]
name = "monitor_sigma_rules"
path = "examples/monitor/sigma_rules.rs"
required-features = [
"sigma",
"dns",
"tls",
"http",
"tokio",
"emit",
]
[[example]]
name = "monitor_ssh_hassh"
path = "examples/monitor/ssh_hassh.rs"
required-features = [
"tokio",
"ssh",
"emit",
]
[[example]]
name = "monitor_stream_consumer"
path = "examples/monitor/stream_consumer.rs"
required-features = [
"tokio",
"flow",
"http",
]
[[example]]
name = "monitor_subscriptions"
path = "examples/monitor/subscriptions.rs"
required-features = ["monitor"]
[[example]]
name = "monitor_tracing_json"
path = "examples/monitor/tracing_json.rs"
required-features = ["monitor"]
[[example]]
name = "monitor_yara"
path = "examples/monitor/yara_scan.rs"
required-features = [
"yara",
"tokio",
]
[[example]]
name = "multi_protocol_monitor"
path = "examples/l7/multi_protocol_monitor.rs"
required-features = [
"tokio",
"flow",
"parse",
]
[[example]]
name = "pcap_write"
path = "examples/basic/pcap_write.rs"
required-features = ["pcap"]
[[example]]
name = "stats_monitor"
path = "examples/basic/stats_monitor.rs"
[[example]]
name = "synthetic_traffic"
path = "examples/util/synthetic_traffic.rs"
required-features = ["tokio"]
[[example]]
name = "top_n_flows"
path = "examples/flow/top_n_flows.rs"
required-features = [
"tokio",
"flow",
"parse",
]
[[example]]
name = "tx_replay"
path = "examples/basic/tx_replay.rs"
required-features = ["tokio"]
[[example]]
name = "xdp_multiqueue"
path = "examples/xdp/xdp_multiqueue.rs"
required-features = [
"af-xdp",
"xdp-loader",
]
[[example]]
name = "xdp_send"
path = "examples/xdp/xdp_send.rs"
required-features = ["af-xdp"]
[[example]]
name = "xdp_sharded"
path = "examples/xdp/xdp_sharded.rs"
required-features = [
"monitor",
"af-xdp",
"xdp-loader",
]
[[example]]
name = "zeek_export"
path = "examples/flow/zeek_export.rs"
required-features = [
"tokio",
"flow",
"parse",
"emit",
]
[[test]]
name = "ad_protocols"
path = "tests/ad_protocols.rs"
[[test]]
name = "arp_replay"
path = "tests/arp_replay.rs"
[[test]]
name = "asset_inventory"
path = "tests/asset_inventory.rs"
[[test]]
name = "asset_inventory_mdns"
path = "tests/asset_inventory_mdns.rs"
[[test]]
name = "asset_inventory_udp"
path = "tests/asset_inventory_udp.rs"
[[test]]
name = "asset_protocols"
path = "tests/asset_protocols.rs"
[[test]]
name = "async_capture"
path = "tests/async_capture.rs"
[[test]]
name = "async_handler"
path = "tests/async_handler.rs"
[[test]]
name = "async_pcap_source"
path = "tests/async_pcap_source.rs"
[[test]]
name = "block_timeout"
path = "tests/block_timeout.rs"
[[test]]
name = "bpf_builder_proptest"
path = "tests/bpf_builder_proptest.rs"
[[test]]
name = "bpf_filter_lifecycle"
path = "tests/bpf_filter_lifecycle.rs"
[[test]]
name = "bpf_humanize"
path = "tests/bpf_humanize.rs"
[[test]]
name = "bridge"
path = "tests/bridge.rs"
[[test]]
name = "build_error_counter_not_registered"
path = "tests/build_error_counter_not_registered.rs"
[[test]]
name = "build_validation_handler_protocol"
path = "tests/build_validation_handler_protocol.rs"
[[test]]
name = "cdp_replay"
path = "tests/cdp_replay.rs"
[[test]]
name = "channel_capture"
path = "tests/channel_capture.rs"
[[test]]
name = "ctx_threading"
path = "tests/ctx_threading.rs"
[[test]]
name = "dedup_lo"
path = "tests/dedup_lo.rs"
[[test]]
name = "dedup_stress"
path = "tests/dedup_stress.rs"
[[test]]
name = "detector_macro_integration"
path = "tests/detector_macro_integration.rs"
[[test]]
name = "eintr"
path = "tests/eintr.rs"
[[test]]
name = "error_conditions"
path = "tests/error_conditions.rs"
[[test]]
name = "fanout"
path = "tests/fanout.rs"
[[test]]
name = "flow_packet_flat"
path = "tests/flow_packet_flat.rs"
[[test]]
name = "flow_risk"
path = "tests/flow_risk.rs"
[[test]]
name = "flow_state_mut"
path = "tests/flow_state_mut.rs"
[[test]]
name = "flow_stream_config"
path = "tests/flow_stream_config.rs"
[[test]]
name = "flowscope_03_passthrough"
path = "tests/flowscope_03_passthrough.rs"
[[test]]
name = "helpers"
path = "tests/helpers.rs"
[[test]]
name = "injector"
path = "tests/injector.rs"
[[test]]
name = "ioc_match"
path = "tests/ioc_match.rs"
[[test]]
name = "ioc_reload"
path = "tests/ioc_reload.rs"
[[test]]
name = "layer_chain"
path = "tests/layer_chain.rs"
[[test]]
name = "layer_spec"
path = "tests/layer_spec.rs"
[[test]]
name = "live_capture_perf"
path = "tests/live_capture_perf.rs"
[[test]]
name = "lldp_replay"
path = "tests/lldp_replay.rs"
[[test]]
name = "loopback_capture"
path = "tests/loopback_capture.rs"
[[test]]
name = "ml_features"
path = "tests/ml_features.rs"
[[test]]
name = "monitor_dispatch_synthetic"
path = "tests/monitor_dispatch_synthetic.rs"
[[test]]
name = "monitor_drain_timeout"
path = "tests/monitor_drain_timeout.rs"
[[test]]
name = "monitor_kernel_prefilter"
path = "tests/monitor_kernel_prefilter.rs"
[[test]]
name = "monitor_layer_chain_integration"
path = "tests/monitor_layer_chain_integration.rs"
[[test]]
name = "monitor_lo_0_22"
path = "tests/monitor_lo_0_22.rs"
[[test]]
name = "monitor_lo_dispatch"
path = "tests/monitor_lo_dispatch.rs"
[[test]]
name = "monitor_lo_kernel_pushdown"
path = "tests/monitor_lo_kernel_pushdown.rs"
[[test]]
name = "monitor_lo_subscribe"
path = "tests/monitor_lo_subscribe.rs"
[[test]]
name = "monitor_name_in_ctx"
path = "tests/monitor_name_in_ctx.rs"
[[test]]
name = "monitor_reassembler_config"
path = "tests/monitor_reassembler_config.rs"
[[test]]
name = "monitor_replay"
path = "tests/monitor_replay.rs"
[[test]]
name = "monitor_run_until_idle"
path = "tests/monitor_run_until_idle.rs"
[[test]]
name = "monitor_send"
path = "tests/monitor_send.rs"
[[test]]
name = "monitor_smoke"
path = "tests/monitor_smoke.rs"
[[test]]
name = "monitor_subscribe"
path = "tests/monitor_subscribe.rs"
[[test]]
name = "multi_capture"
path = "tests/multi_capture.rs"
[[test]]
name = "multi_stream_config"
path = "tests/multi_stream_config.rs"
[[test]]
name = "ndp_replay"
path = "tests/ndp_replay.rs"
[[test]]
name = "nprint_export"
path = "tests/nprint_export.rs"
[[test]]
name = "p0f_replay"
path = "tests/p0f_replay.rs"
[[test]]
name = "packet_filter_reload"
path = "tests/packet_filter_reload.rs"
[[test]]
name = "pattern_detector_macro"
path = "tests/pattern_detector_macro.rs"
[[test]]
name = "polish_0_22"
path = "tests/polish_0_22.rs"
[[test]]
name = "protocol_plugin"
path = "tests/protocol_plugin.rs"
[[test]]
name = "protocol_roles"
path = "tests/protocol_roles.rs"
[[test]]
name = "quic_protocol"
path = "tests/quic_protocol.rs"
[[test]]
name = "report_model"
path = "tests/report_model.rs"
[[test]]
name = "sharded_lo_merge"
path = "tests/sharded_lo_merge.rs"
[[test]]
name = "sharded_merge"
path = "tests/sharded_merge.rs"
[[test]]
name = "sharded_runner"
path = "tests/sharded_runner.rs"
[[test]]
name = "sigma_match"
path = "tests/sigma_match.rs"
[[test]]
name = "sigma_reload"
path = "tests/sigma_reload.rs"
[[test]]
name = "ssh_protocol"
path = "tests/ssh_protocol.rs"
[[test]]
name = "statistics"
path = "tests/statistics.rs"
[[test]]
name = "stream_api_completion"
path = "tests/stream_api_completion.rs"
[[test]]
name = "stream_observability"
path = "tests/stream_observability.rs"
[[test]]
name = "tcp_rst_and_umbrellas"
path = "tests/tcp_rst_and_umbrellas.rs"
[[test]]
name = "tier2_app"
path = "tests/tier2_app.rs"
[[test]]
name = "tier2_infra"
path = "tests/tier2_infra.rs"
[[test]]
name = "timeout"
path = "tests/timeout.rs"
[[test]]
name = "tx_timestamp_lo"
path = "tests/tx_timestamp_lo.rs"
[[test]]
name = "typed_flow_packet_event"
path = "tests/typed_flow_packet_event.rs"
[[test]]
name = "with_dedup_propagation"
path = "tests/with_dedup_propagation.rs"
[[test]]
name = "xdp"
path = "tests/xdp.rs"
[[test]]
name = "xdp_lo_smoke"
path = "tests/xdp_lo_smoke.rs"
[[test]]
name = "yara_scan"
path = "tests/yara_scan.rs"
[[bench]]
name = "dispatch_specialization"
path = "benches/dispatch_specialization.rs"
harness = false
required-features = ["bench-zero-alloc"]
[[bench]]
name = "dispatch_throughput"
path = "benches/dispatch_throughput.rs"
harness = false
required-features = ["flow"]
[[bench]]
name = "throughput"
path = "benches/throughput.rs"
harness = false
[[bench]]
name = "zero_alloc"
path = "benches/zero_alloc.rs"
harness = false
required-features = ["bench-zero-alloc"]
[dependencies.ahash]
version = "0.8"
optional = true
default-features = false
[dependencies.arc-swap]
version = "1"
[dependencies.arrayvec]
version = "0.7"
[dependencies.aya]
version = "0.13"
optional = true
[dependencies.bitflags]
version = "2"
[dependencies.bytes]
version = "1"
optional = true
[dependencies.crossbeam-channel]
version = "0.5"
optional = true
[dependencies.dhat]
version = "0.3"
optional = true
[dependencies.etherparse]
version = "0.16"
optional = true
[dependencies.flowscope]
version = "0.20"
default-features = false
[dependencies.futures-core]
version = "0.3"
features = ["std"]
optional = true
default-features = false
[dependencies.libc]
version = "0.2"
[dependencies.metrics]
version = "0.24"
optional = true
[dependencies.nix]
version = "0.31"
features = [
"socket",
"mman",
"poll",
"net",
"ioctl",
]
[dependencies.pcap-file]
version = "2"
optional = true
[dependencies.rustc-hash]
version = "2"
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1"
optional = true
[dependencies.sigma-rust]
version = "0.7"
optional = true
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"io-util",
"net",
"macros",
"rt-multi-thread",
"time",
"signal",
"sync",
]
optional = true
[dependencies.tokio-stream]
version = "0.1"
features = ["sync"]
optional = true
[dependencies.tracing]
version = "0.1"
features = ["std"]
default-features = false
[dependencies.xxhash-rust]
version = "0.8"
features = ["xxh3"]
default-features = false
[dependencies.yara-x]
version = "1.18"
optional = true
default-features = false
[dev-dependencies.core_affinity]
version = "0.8"
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.divan]
version = "0.1"
[dev-dependencies.env_logger]
version = "0.11"
[dev-dependencies.etherparse]
version = "0.16"
[dev-dependencies.futures]
version = "0.3"
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = [
"json",
"env-filter",
]