[package]
edition = "2024"
rust-version = "1.85"
name = "flowscope"
version = "0.2.0"
authors = ["Marc Pardo <p13marc@gmail.com>"]
build = false
exclude = [
"plans/",
"CLAUDE.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Passive flow & session tracking for packet capture (runtime-free, cross-platform)"
homepage = "https://github.com/p13marc/flowscope"
documentation = "https://docs.rs/flowscope"
readme = "README.md"
keywords = [
"flow",
"session",
"tcp",
"packet",
"passive",
]
categories = [
"network-programming",
"parser-implementations",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/p13marc/flowscope"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[package.metadata.cargo-machete]
ignored = ["md-5"]
[features]
default = [
"extractors",
"tracker",
"reassembler",
"session",
]
dns = [
"extractors",
"tracker",
"session",
"dep:simple-dns",
]
extractors = ["dep:etherparse"]
full = [
"http",
"tls",
"ja3",
"dns",
"pcap",
"metrics",
"tracing",
]
http = [
"reassembler",
"session",
"dep:httparse",
"dep:bytes",
]
ja3 = [
"tls",
"dep:md-5",
"dep:hex",
]
metrics = [
"tracker",
"dep:metrics",
]
pcap = [
"extractors",
"tracker",
"dep:pcap-file",
]
reassembler = ["tracker"]
session = ["tracker"]
test-helpers = ["extractors"]
tls = [
"reassembler",
"session",
"dep:tls-parser",
"dep:bytes",
]
tracing = [
"tracker",
"dep:tracing",
]
tracker = [
"dep:ahash",
"dep:smallvec",
"dep:arrayvec",
"dep:lru",
]
[lib]
name = "flowscope"
path = "src/lib.rs"
[[example]]
name = "dns_log"
path = "examples/dns_log.rs"
required-features = [
"dns",
"pcap",
]
[[example]]
name = "generate_fixtures"
path = "examples/generate_fixtures.rs"
required-features = ["test-helpers"]
[[example]]
name = "generate_length_prefixed_pcap"
path = "examples/generate_length_prefixed_pcap.rs"
required-features = [
"test-helpers",
"pcap",
]
[[example]]
name = "http_log"
path = "examples/http_log.rs"
required-features = [
"http",
"pcap",
]
[[example]]
name = "length_prefixed_pcap"
path = "examples/length_prefixed_pcap.rs"
required-features = [
"pcap",
"session",
]
[[example]]
name = "pcap_buffered_reassembly"
path = "examples/pcap_buffered_reassembly.rs"
required-features = [
"pcap",
"reassembler",
]
[[example]]
name = "pcap_flow_keys"
path = "examples/pcap_flow_keys.rs"
required-features = ["pcap"]
[[example]]
name = "pcap_flow_summary"
path = "examples/pcap_flow_summary.rs"
required-features = ["pcap"]
[[example]]
name = "tls_observer"
path = "examples/tls_observer.rs"
required-features = [
"tls",
"pcap",
]
[[test]]
name = "dns_parser"
path = "tests/dns_parser.rs"
required-features = ["dns"]
[[test]]
name = "http_parser"
path = "tests/http_parser.rs"
required-features = ["http"]
[[test]]
name = "http_pcap"
path = "tests/http_pcap.rs"
required-features = [
"http",
"pcap",
]
[[test]]
name = "length_prefixed_example"
path = "tests/length_prefixed_example.rs"
required-features = [
"pcap",
"session",
"extractors",
]
[[test]]
name = "metrics_integration"
path = "tests/metrics_integration.rs"
required-features = [
"metrics",
"extractors",
"reassembler",
"test-helpers",
]
[[test]]
name = "parser_proptest"
path = "tests/parser_proptest.rs"
required-features = [
"http",
"tls",
"dns",
]
[[test]]
name = "pcap_fixtures"
path = "tests/pcap_fixtures.rs"
required-features = [
"pcap",
"test-helpers",
]
[[test]]
name = "pcap_integration"
path = "tests/pcap_integration.rs"
required-features = ["pcap"]
[[test]]
name = "proptest_invariants"
path = "tests/proptest_invariants.rs"
required-features = [
"test-helpers",
"tracker",
]
[[test]]
name = "tls_parser"
path = "tests/tls_parser.rs"
required-features = ["tls"]
[dependencies.ahash]
version = "0.8"
optional = true
default-features = false
[dependencies.arrayvec]
version = "0.7"
optional = true
[dependencies.bitflags]
version = "2"
[dependencies.bytes]
version = "1"
optional = true
[dependencies.etherparse]
version = "0.16"
optional = true
[dependencies.hex]
version = "0.4"
optional = true
[dependencies.httparse]
version = "1.10"
optional = true
[dependencies.lru]
version = "0.16"
optional = true
[dependencies.md-5]
version = "0.10"
optional = true
[dependencies.metrics]
version = "0.24"
optional = true
[dependencies.pcap-file]
version = "2"
optional = true
[dependencies.simple-dns]
version = "0.10"
optional = true
[dependencies.smallvec]
version = "1"
optional = true
[dependencies.thiserror]
version = "2"
[dependencies.tls-parser]
version = "0.12"
optional = true
[dependencies.tracing]
version = "0.1"
features = [
"std",
"attributes",
]
optional = true
default-features = false
[dev-dependencies.metrics-util]
version = "0.20"
[dev-dependencies.pcap-file]
version = "2"
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]