charlenopires / quack

Erlang implementation of Google QUIC protocol

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

* QUIC version 35
* Client only (for now)

Progress:
* Most (perhaps all?) packet formats can be encoded/decoded (from/to records)
* Most (perhaps all?) frame types can be encoded/decoded (from/to records)
* Tag value maps can be encoded/decoded (from/to maps)
* Error codes can be encoded/decoded (from/to atoms)
* Connection-level out-of-order packet arrival is handled
* Stream-level out-of-order frame arrival is handled
* Received packets are acknowledged to the other end (current approach is very naive)
* Sent packets are kept in memory and purged/resent as requested by ther other end (current approach is very naive)
* Outbound packets are automatically padded as necessary to fill the target IPv4 MTU (1350 bytes)
* Initial connection can be established
* Crypto stream is opened, key diversification is handled, forward-secure parameters are negotiated (curve25519 / AES GCM)
* Basic HTTP-over-QUIC requests working partially

About

Erlang implementation of Google QUIC protocol

License:MIT License


Languages

Language:Erlang 99.6%Language:Makefile 0.4%