Benjamin Saunders 31d35944aa core: fix high-latency handshakes and related bugs
Packets that complete the handshake must be considered implicit
acknowledgement of all outstanding handshake packets, otherwise
retransmitted handshake packets that are not ultimately needed might
never be acknowledged, leading to infinite retransmits until the
congestion window shrinks to unusability.
2018-05-12 16:17:33 -07:00
2018-05-02 18:33:05 -07:00
2018-02-09 19:27:15 -08:00
2018-04-28 22:07:13 -07:00
2018-04-28 22:07:13 -07:00
2018-04-24 18:28:55 -07:00
2018-05-02 18:32:25 -07:00
2018-05-02 18:32:25 -07:00

quicr

quicr is an implementation of the QUIC network protocol undergoing standardization by the IETF. It is currently suitable for experimental use. The implementation is split up into the state macine crate quicr-core which performs no IO internally and can be tested deterministically, and a high-level tokio-compatible API in quicr. See quicr/examples/ for usage.

Crates.io License: MIT License: Apache 2.0

API Docs

Features

  • Simultaneous client/server operation
  • Ordered and unordered reads for improved performance

Status

  • QUIC draft 11 with TLS 1.3 draft 28
  • Cryptographic handshake
  • Stream data w/ flow control and congestion control
  • Connection close
  • Stateless retry
  • Migration
  • 0-RTT data
  • Session resumption

Building

Because TLS1.3 is a new standard, OpenSSL 1.1.1-pre6 (or later) is required for quicr to build. For compatibility with most other QUIC implementations as of this writing, it should be patched with openssl-tls-28.patch in this repository.

S
Description
noq, a QUIC implementation in Rust
Readme 107 MiB
Languages
Rust 99.3%
Python 0.5%
Shell 0.2%