-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
82 lines (73 loc) · 2.51 KB
/
Copy pathCargo.toml
File metadata and controls
82 lines (73 loc) · 2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
[package]
name = "mediacast-netcatalog"
version = "0.3.0-dev"
edition = "2021"
# No `rust-version` anchor pre-1.0 — transitive deps churn faster than
# is worth chasing for a research scaffold (e.g., toml_datetime needs
# edition2024 ≥ 1.85, icu_* 2.2 needs ≥ 1.86). Revisit at v1.0 when the
# API stabilizes and downstream consumers actually need a stable floor.
description = "Vendor command catalog + version matcher + protocol probe for multi-vendor network automation."
license = "MIT OR Apache-2.0"
repository = "https://github.com/Mediacastnet/mediacast-netcatalog"
homepage = "https://github.com/Mediacastnet/mediacast-netcatalog"
documentation = "https://docs.rs/mediacast-netcatalog"
readme = "README.md"
keywords = ["networking", "cisco", "aruba", "juniper", "automation"]
categories = ["network-programming", "parser-implementations", "api-bindings"]
authors = ["Robare Pruyn <robare@mediacastnet.com>", "Mediacast Network Solutions"]
include = [
"src/**/*.rs",
"catalog/*.yaml",
"catalog/*.md",
"Cargo.toml",
"README.md",
"LICENSE-MIT",
"LICENSE-APACHE",
"CHANGELOG.md",
]
[lib]
name = "mediacast_netcatalog"
crate-type = ["cdylib", "rlib"]
[features]
default = []
# Enable the PyO3 Python bindings. Activated by maturin during wheel builds.
python = ["dep:pyo3"]
# Enable the `mediacast-netcatalog probe` CLI binary.
bin = ["dep:clap", "dep:anyhow"]
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_yaml = "0.9"
serde_json = "1.0"
thiserror = "1.0"
once_cell = "1.19"
indexmap = { version = "2.2", features = ["serde"] }
tracing = "0.1"
# v0.3 RESTCONF content discrimination uses rustls + a hand-rolled
# minimal HTTP/1.1 status-line parse. No HTTP-client crate needed --
# we only care about the status code, not the body.
rustls = { version = "0.23", default-features = false, features = ["std", "ring"] }
rustls-pki-types = "1"
# Optional — Python bindings
pyo3 = { version = "0.21", features = ["extension-module", "abi3-py39"], optional = true }
# Optional — probe binary
clap = { version = "4.5", features = ["derive"], optional = true }
anyhow = { version = "1.0", optional = true }
[dev-dependencies]
anyhow = "1.0"
pretty_assertions = "1.4"
rstest = "0.21"
[[example]]
name = "basic_lookup"
required-features = []
[[bin]]
name = "mediacast-netcatalog"
path = "src/bin/probe.rs"
required-features = ["bin"]
[profile.release]
lto = "thin"
codegen-units = 1
strip = "symbols"
[package.metadata.docs.rs]
all-features = false
features = []
rustdoc-args = ["--cfg", "docsrs"]