[package]
edition = "2021"
rust-version = "1.87.0"
name = "bgpkit-parser"
version = "0.15.0"
authors = ["Mingwei Zhang <mingwei@bgpkit.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
default-run = "bgpkit-parser"
description = "MRT/BGP/BMP data processing library"
documentation = "https://docs.rs/bgpkit-parser"
readme = "README.md"
keywords = [
"bgp",
"bgpkit",
"mrt",
]
categories = ["network-programming"]
license = "MIT"
repository = "https://github.com/bgpkit/bgpkit-parser"
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ target }.tar.gz"
pkg-fmt = "tgz"
[features]
cli = [
"clap",
"parser",
"env_logger",
"serde",
"serde_json",
]
default = [
"parser",
"rustls",
]
local = [
"parser",
"oneio",
]
lz = ["oneio/lz"]
native-tls = ["oneio/native-tls"]
parser = [
"bytes",
"chrono",
"regex",
]
rislive = [
"parser",
"serde",
"serde_json",
"hex",
]
rustls = ["oneio/rustls"]
serde = [
"dep:serde",
"ipnet/serde",
]
xz = ["oneio/xz"]
[lib]
name = "bgpkit_parser"
path = "src/lib.rs"
[[bin]]
name = "bgpkit-parser"
path = "src/bin/main.rs"
required-features = ["cli"]
[[example]]
name = "bmp_listener"
path = "examples/bmp_listener.rs"
[[example]]
name = "cache_reading"
path = "examples/cache_reading.rs"
[[example]]
name = "count_elems"
path = "examples/count_elems.rs"
[[example]]
name = "deprecated_attributes"
path = "examples/deprecated_attributes.rs"
required-features = ["serde"]
[[example]]
name = "display_elems"
path = "examples/display_elems.rs"
[[example]]
name = "extended_communities"
path = "examples/extended_communities.rs"
[[example]]
name = "extract_problematic_records"
path = "examples/extract_problematic_records.rs"
[[example]]
name = "fallible_parsing"
path = "examples/fallible_parsing.rs"
[[example]]
name = "filter_export_rib"
path = "examples/filter_export_rib.rs"
[[example]]
name = "filters"
path = "examples/filters.rs"
[[example]]
name = "find_as_set_messages"
path = "examples/find_as_set_messages.rs"
[[example]]
name = "mrt_debug"
path = "examples/mrt_debug.rs"
[[example]]
name = "mrt_filter_archiver"
path = "examples/mrt_filter_archiver.rs"
[[example]]
name = "multiple_filters_or_logic"
path = "examples/multiple_filters_or_logic.rs"
[[example]]
name = "only_to_customer"
path = "examples/only_to_customer.rs"
[[example]]
name = "parse_files_from_broker"
path = "examples/parse_files_from_broker.rs"
[[example]]
name = "parse_files_from_broker_parallel"
path = "examples/parse_files_from_broker_parallel.rs"
[[example]]
name = "parse_single_file"
path = "examples/parse_single_file.rs"
[[example]]
name = "parse_single_file_parallel"
path = "examples/parse_single_file_parallel.rs"
[[example]]
name = "peer_index_table"
path = "examples/peer_index_table.rs"
required-features = ["serde"]
[[example]]
name = "real_time_ris_live_websocket"
path = "examples/real_time_ris_live_websocket.rs"
required-features = ["rislive"]
[[example]]
name = "real_time_ris_live_websocket_async"
path = "examples/real_time_ris_live_websocket_async.rs"
required-features = ["rislive"]
[[example]]
name = "real_time_routeviews_kafka_openbmp"
path = "examples/real_time_routeviews_kafka_openbmp.rs"
[[example]]
name = "real_time_routeviews_kafka_to_mrt"
path = "examples/real_time_routeviews_kafka_to_mrt.rs"
[[example]]
name = "records_iter"
path = "examples/records_iter.rs"
[[example]]
name = "rtr_client"
path = "examples/rtr_client.rs"
[[example]]
name = "scan_mrt"
path = "examples/scan_mrt.rs"
required-features = ["cli"]
[[example]]
name = "update_messages_iter"
path = "examples/update_messages_iter.rs"
[[test]]
name = "bgp-parser-tests"
path = "tests/bgp-parser-tests.rs"
[[test]]
name = "raw_iter"
path = "tests/raw_iter.rs"
[[test]]
name = "test_encoding"
path = "tests/test_encoding.rs"
[[bench]]
name = "bench_main"
path = "benches/bench_main.rs"
harness = false
[[bench]]
name = "data_source"
path = "benches/data_source.rs"
[[bench]]
name = "internals"
path = "benches/internals.rs"
harness = false
[dependencies.bitflags]
version = "2.6"
features = ["serde"]
[dependencies.bytes]
version = "1.7"
optional = true
[dependencies.chrono]
version = "0.4.38"
optional = true
[dependencies.clap]
version = "4.5"
features = ["derive"]
optional = true
[dependencies.env_logger]
version = "0.11"
optional = true
[dependencies.hex]
version = "0.4.3"
optional = true
[dependencies.ipnet]
version = "2.10"
[dependencies.itertools]
version = "0.14"
[dependencies.log]
version = "0.4"
[dependencies.num_enum]
version = "0.7"
features = ["complex-expressions"]
[dependencies.oneio]
version = "0.20.0"
features = [
"http",
"gz",
"bz",
]
optional = true
default-features = false
[dependencies.regex]
version = "1"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1.0"
optional = true
[dev-dependencies.anyhow]
version = "1"
[dev-dependencies.bgpkit-broker]
version = "0.10.1"
[dev-dependencies.bzip2]
version = "0.6"
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[dev-dependencies.crossbeam-channel]
version = "0.5"
[dev-dependencies.ctrlc]
version = "3.4"
[dev-dependencies.env_logger]
version = "0.11"
[dev-dependencies.flate2]
version = "1.1"
[dev-dependencies.futures-util]
version = "0.3.30"
[dev-dependencies.hex]
version = "0.4.3"
[dev-dependencies.kafka]
version = "0.10.0"
[dev-dependencies.md5]
version = "0.8.0"
[dev-dependencies.rayon]
version = "1.10"
[dev-dependencies.regex]
version = "1"
[dev-dependencies.serde_json]
version = "1.0"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = ["full"]
[dev-dependencies.tokio-tungstenite]
version = "0.28"
[dev-dependencies.tracing]
version = "0.1"
[dev-dependencies.tracing-subscriber]
version = "0.3"
[dev-dependencies.tungstenite]
version = "0.28.0"
[dev-dependencies.which]
version = "8"
[lints.clippy]
uninlined_format_args = "allow"