12 releases
0.4.0 | Mar 5, 2023 |
---|---|
0.3.4 | Dec 9, 2022 |
0.3.3 | Aug 19, 2022 |
0.3.2 | May 11, 2022 |
0.1.2 | Mar 24, 2022 |
#1445 in Network programming
45 downloads per month
Used in 2 crates
61KB
1K
SLoC
💢 warts
This crate implements reading and writing
warts(5)
files produced by CAIDA's Scamper tool.
It relies on the excellent deku crate for serializing and deserializing the binary format.
Usage
You can run one of the examples in examples/
:
cargo run --release --example dump data/trace_google_dns_v6_default.warts
cargo run --release --example read_traceroute data/trace_google_dns_v6_default.warts
cargo run --release --example write_traceroute > test.warts
To use in your own project, add the following dependency to Cargo.toml
:
[dependencies]
warts = "0.4"
Limitations
The following features are currently not implemented:
- DoubleTree and PMTUD data
-
tsprespec
data - Streaming reading
Performance
Time to parse and print the traceroutes from abz-uk.team-probing.c009127.20210202.warts
(52MB).
Measured with hyperfine on a 2020 M1 MacBook Air.
Library | Time (s) |
---|---|
warts / read_traceroute |
0.797 |
Scamper / sc_warts2text |
1.125 |
pywarts / parse_from_stdin.py |
12.405 |
cmand/scamper / sc_warts2text.py |
21.207 |
Object types
Type | Structure | Name | Implemented |
---|---|---|---|
0x0001 |
scamper_list_t |
List | Y |
0x0002 |
scamper_cycle_t |
Cycle start | Y |
0x0003 |
scamper_cycle_t |
Cycle definition | Y |
0x0004 |
scamper_cycle_t |
Cycle stop | Y |
0x0005 |
scamper_addr_t |
Address (deprecated) | Y |
0x0006 |
scamper_trace_t |
Traceroute | Y |
0x0007 |
scamper_ping_t |
Ping | Y |
0x0008 |
scamper_tracelb_t |
MDA traceroute | Y |
0x0009 |
scamper_dealias_t |
Alias resolution | N |
0x000a |
scamper_neighbourdisc_t |
Neighbour discovery | N |
0x000b |
scamper_tbit_t |
TCP behaviour inference tool | N |
0x000c |
scamper_sting_t |
Sting | N |
0x000d |
scamper_sniff_t |
Sniff | N |
Dependencies
~4MB
~88K SLoC