Crates.io | chokepoint |
lib.rs | chokepoint |
version | 0.4.2 |
source | src |
created_at | 2024-11-19 14:17:50.002852 |
updated_at | 2024-12-03 22:22:54.325394 |
description | Generic stream transformer to simulate traffic / network congestion |
homepage | https://github.com/hypervideo/chokepoint |
repository | https://github.com/hypervideo/chokepoint |
max_upload_size | |
id | 1453317 |
size | 253,900 |
A library for simulating "traffic shaping" in Rust based on a generic futures::Stream
and futures::Sink
transformer that can be used to modify the delivery of items. The main purpose is to simulate various network
conditions such as:
See [TrafficShaper
] for more information and an example.
At ./cli you can find a simple cli tool for interactive exploration. Using a tool like graph-cli you can visualize the output. Here is an example to showcase delay, jitter and bandwidth:
$ chokepoint --help
Usage: chokepoint [OPTIONS] <MODE>
Arguments:
<MODE> Simulate a sink or a stream [possible values: stream, sink]
Options:
-v, --verbose
-n <N>
Number of packets to send [default: 250]
-o, --output <OUTPUT>
Output file (csv) with packet timing information
-r, --packet-rate <PACKET_RATE>
Send rate in packets per second
-s, --packet-size <PACKET_SIZE>
Packet size in bytes [default: 1B]
--ordering <ORDERING>
[default: ordered]
-l, --bandwidth-limit <BANDWIDTH_LIMIT>
Bandwidth limit
--mean <MEAN>
Mean latency in ms [default: 0.0]
--stddev <STDDEV>
Standard deviation of latency in ms (aka jitter) [default: 0.0]
-h, --help
Print help