sphinx-packet

Crates.iosphinx-packet
lib.rssphinx-packet
version0.1.1
sourcesrc
created_at2023-02-22 09:52:01.130597
updated_at2024-05-21 13:37:33.318225
descriptionA Sphinx packet implementation in Rust
homepage
repositoryhttps://github.com/nymtech/sphinx
max_upload_size
id791682
size187,350
Core (github:nymtech:core)

documentation

README

Sphinx

A Sphinx packet implementation in Rust.

License Build Status codecov

Prerequisites

Testing

cargo test will run the unit and integration tests.

Code coverage reporting

If you want to find out how you're doing in terms of code coverage, install docker and then run the code coverage shell script at ./scripts/coverage_report.sh. Docker will download all the dependencies (get a coffee!), and output an HTML code coverage report at coverage/tarpaulin-report.html. Open the generated file in your browser to check coverage.

Unit + integration test coverage is currently well above 90%, please ensure that any pull requests maintain good test coverage.

Benchmarks

To run benchmarks, use:

cargo bench

Rust benchmarks run the operation multiple times to give a consistent output and report back in the number of nanoseconds (billionths of a second) per iteration. 1000000000 / result gives you the number of operations per second.

For later reference, on Dave's i7 Dell XPS-13 (2018) laptop (our test reference machine :)) output is as follows.

test tests::bench_new     ... bench:     386.348 us/iter
test tests::bench_process ... bench:     157.322 us/iter
  • 1000000 / 386.348 = ~2588 packet creations per second
  • 1000000 / 157.322 = ~6356 packet unwrappings per second
Commit count: 446

cargo fmt