#p2p #quic #networking #low-level #customizable #node #quinn

quickie

A simple, low-level, and customizable implementation of a QUIC P2P node

6 releases (breaking)

0.6.0 Jun 27, 2023
0.5.0 May 11, 2023
0.4.0 Nov 9, 2022
0.3.0 Jul 22, 2022
0.1.0 Jul 19, 2022

#8 in #quinn

Download history 72/week @ 2024-02-24 2/week @ 2024-03-02

74 downloads per month

CC0 license

37KB
692 lines

quickie

crates.io docs.rs LOC dependencies actively developed issues

quickie is a simple, low-level, and customizable implementation of a QUIC P2P node. Its design is inspired by pea2pea.

goals

  • small, simple, non-framework codebase
  • ease of use: few objects and traits, no "turboeels" or generics/references that would force all parent objects to adapt
  • correctness: builds with stable Rust, there is no unsafe code
  • low-level oriented: while the underlying quinn crate does the QUIC heavy-lifting, the user should have access to most of its functionalities

how to use it

  1. define a clonable struct containing a Node and any extra state you'd like to carry
  2. implement the Quickie trait for it
  3. create that struct (or as many of them as you like)

That's it!

examples

  • TODO

status

  • the core functionalities seem to work, but there can still be bugs
  • not all the quinn features are exposed yet
  • some tests are already in place
  • the crate follows semver, and API breakage is to be expected before 1.0

Dependencies

~6–17MB
~201K SLoC