14 unstable releases (5 breaking)

0.7.0 Jan 20, 2022
0.6.1 Jul 15, 2021
0.5.5 Feb 17, 2020
0.5.3 Dec 19, 2019
0.4.2 Oct 29, 2018

#374 in Procedural macros

Download history 26/week @ 2023-02-06 32/week @ 2023-02-13 46/week @ 2023-02-20 14/week @ 2023-02-27 11/week @ 2023-03-06 14/week @ 2023-03-13 37/week @ 2023-03-20 8/week @ 2023-03-27 22/week @ 2023-04-03 12/week @ 2023-04-10 22/week @ 2023-04-17 23/week @ 2023-04-24 17/week @ 2023-05-01 51/week @ 2023-05-08 18/week @ 2023-05-15 5/week @ 2023-05-22

97 downloads per month
Used in 2 crates

ISC license

370KB
9K SLoC

Rust 6K SLoC // 0.0% comments C 3K SLoC // 0.1% comments Python 495 SLoC // 0.1% comments

Portus Build Status

Portus is an implementation of a congestion control plane (CCP). It is a library that can be used to write new congestion control algorithms in user-space.

Congestion control algorithm implementations live in independent crates which use this library for common functionality. Each algorithm crate provides a binary which runs a CCP with that algorithm activated.

Further documentation is available on docs.rs.

Setup

  1. Install rust. See http://rust-lang.org/ for details.
  2. make. This will build and lint the portus library and bundled algorithm libraries and binaries, and run unit tests.

Notes

  • The ipc::netlink and ipc::kp modules will only compile on Linux. If the CCP kernel module (github.mit.edu/nebula/ccp-kernel) is loaded, the test will refuse to run.

Run

There are no algorithm binaries in this repository: it is just a library and runtime for CCP algorithms. You may be interested in https://github.com/ccp-project/generic-cong-avoid, which provides implementations of Reno and Cubic, or https://github.com/ccp-project/bbr, a BBR implementation.

Dependencies

~4–5.5MB
~115K SLoC