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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
[workspace]
resolver = "2"
members = [
"crates/trippy",
"crates/trippy-tui",
"crates/trippy-core",
"crates/trippy-packet",
"crates/trippy-privilege",
"crates/trippy-dns",
"examples/*",
]
[workspace.package]
version = "0.12.0-dev"
authors = ["FujiApple <fujiapple852@gmail.com>"]
documentation = "https://github.com/fujiapple852/trippy"
homepage = "https://github.com/fujiapple852/trippy"
repository = "https://github.com/fujiapple852/trippy"
readme = "README.md"
license = "Apache-2.0"
edition = "2021"
rust-version = "1.76"
keywords = ["cli", "tui", "traceroute", "ping", "icmp"]
categories = ["command-line-utilities", "network-programming"]
[workspace.dependencies]
trippy-tui = { version = "0.12.0-dev", path = "crates/trippy-tui" }
trippy-core = { version = "0.12.0-dev", path = "crates/trippy-core" }
trippy-privilege = { version = "0.12.0-dev", path = "crates/trippy-privilege" }
trippy-dns = { version = "0.12.0-dev", path = "crates/trippy-dns" }
trippy-packet = { version = "0.12.0-dev", path = "crates/trippy-packet" }
anyhow = "1.0.91"
arrayvec = { version = "0.7.6", default-features = false }
bitflags = "2.6.0"
caps = "0.5.5"
chrono = { version = "0.4.38", default-features = false }
clap = { version = "4.5.20", default-features = false }
clap_complete = "4.4.9"
clap_mangen = "0.2.20"
comfy-table = { version = "7.1.0", default-features = false }
crossbeam = "0.8.4"
crossterm = { version = "0.28.1", default-features = false }
csv = "1.3.0"
derive_more = { version = "1.0.0", default-features = false }
dns-lookup = "2.0.4"
encoding_rs_io = "0.1.7"
etcetera = "0.8.0"
hex-literal = "0.4.1"
hickory-resolver = "0.24.1"
humantime = "2.1.0"
indexmap = { version = "2.6.0", default-features = false }
insta = "1.41.0"
ipnetwork = "0.20.0"
itertools = "0.13.0"
maxminddb = "0.24.0"
mockall = "0.13.0"
nix = { version = "0.29.0", default-features = false }
parking_lot = "0.12.3"
paste = "1.0.15"
petgraph = "0.6.5"
pretty_assertions = "1.4.1"
rand = "0.8.5"
ratatui = "0.29.0"
rust-i18n = "3.1.2"
serde = { version = "1.0.201", default-features = false }
serde_json = { version = "1.0.117", default-features = false }
serde_with = { version = "3.11.0", default-features = false, features = ["macros"] }
serde_yml = "0.0.12"
socket2 = "0.5.7"
strum = { version = "0.26.3", default-features = false }
sys-locale = "0.3.1"
test-case = "3.3.1"
thiserror = "1.0.60"
tokio = "1.41.0"
tokio-util = "0.7.12"
toml = { version = "0.8.19", default-features = false }
tracing = "0.1.40"
tracing-chrome = "0.7.2"
tracing-subscriber = { version = "0.3.18", default-features = false }
tun2 = "4.0.0"
unicode-width = "0.2.0"
widestring = "1.0.2"
windows-sys = "0.52.0"
[workspace.lints.rust]
unsafe_code = "deny"
rust_2018_idioms = { level = "warn", priority = -1 }
[workspace.lints.clippy]
all = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
nursery = { level = "warn", priority = -1 }
module_name_repetitions = "allow"
option_if_let_else = "allow"
cast_possible_truncation = "allow"
missing_errors_doc = "allow"
cast_precision_loss = "allow"
bool_assert_comparison = "allow"
[profile.release]
lto = true
|