All Projects → p-quic → Pquic

p-quic / Pquic

Licence: mit
The PQUIC implementation, a framework that enables QUIC clients and servers to dynamically exchange protocol plugins that extend the protocol on a per-connection basis

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Pquic

Base Drafts
Internet-Drafts that make up the base QUIC specification
Stars: ✭ 1,270 (+1915.87%)
Mutual labels:  protocol, quic, transport
Mangos V1
The pure golang implementation of nanomsg (version 1, frozen)
Stars: ✭ 1,533 (+2333.33%)
Mutual labels:  protocol, transport
Quinn
Async-friendly QUIC implementation in Rust
Stars: ✭ 1,859 (+2850.79%)
Mutual labels:  protocol, quic
Popsicle
Simple HTTP requests for node and the browser
Stars: ✭ 238 (+277.78%)
Mutual labels:  plugins, transport
Kcp
⚡ KCP - A Fast and Reliable ARQ Protocol
Stars: ✭ 10,473 (+16523.81%)
Mutual labels:  protocol, quic
Quiche
🥧 Savoury implementation of the QUIC transport protocol and HTTP/3
Stars: ✭ 5,481 (+8600%)
Mutual labels:  protocol, quic
Quic.net
A .NET C# Implementation of QUIC protocol - Google's experimental transport layer.
Stars: ✭ 173 (+174.6%)
Mutual labels:  protocol, quic
Rtptools
RTP Tools
Stars: ✭ 74 (+17.46%)
Mutual labels:  protocol, transport
Graphql Ws
Coherent, zero-dependency, lazy, simple, GraphQL over WebSocket Protocol compliant server and client.
Stars: ✭ 398 (+531.75%)
Mutual labels:  protocol, transport
Kadence
⚠️ KADENCE HAS MOVED TO GITLAB ⚠️
Stars: ✭ 363 (+476.19%)
Mutual labels:  plugins, protocol
Msquic
Cross-platform, C implementation of the IETF QUIC protocol.
Stars: ✭ 2,501 (+3869.84%)
Mutual labels:  protocol, quic
Ngtcp2
ngtcp2 project is an effort to implement IETF QUIC protocol
Stars: ✭ 589 (+834.92%)
Mutual labels:  protocol, quic
xquic
XQUIC Library released by Alibaba is a cross-platform implementation of QUIC and HTTP/3 protocol.
Stars: ✭ 943 (+1396.83%)
Mutual labels:  protocol, quic
Quic Go
A QUIC implementation in pure go
Stars: ✭ 6,085 (+9558.73%)
Mutual labels:  protocol, quic
Lsquic
LiteSpeed QUIC and HTTP/3 Library
Stars: ✭ 727 (+1053.97%)
Mutual labels:  protocol, quic
Pylstar
An implementation of the LSTAR Grammatical Inference Algorithm
Stars: ✭ 41 (-34.92%)
Mutual labels:  protocol
Subscriptions Transport Sse
A Server-Side-Events (SSE) client + server for GraphQL subscriptions
Stars: ✭ 55 (-12.7%)
Mutual labels:  transport
Objection Unique
Unique validation for Objection.js
Stars: ✭ 42 (-33.33%)
Mutual labels:  plugins
Ned2k
Nodejs library for ed2k protocol
Stars: ✭ 41 (-34.92%)
Mutual labels:  protocol
Luamqtt
luamqtt - Pure-lua MQTT v3.1.1 and v5.0 client
Stars: ✭ 58 (-7.94%)
Mutual labels:  protocol

PQUIC

The PQUIC implementation, a framework that enables QUIC clients and servers to dynamically exchange protocol plugins that extend the protocol on a per-connection basis.

The current PQUIC implementation supports the draft-29 version of the QUIC specification.

Using Docker

Docker builds exist on (Docker Hub)[https://hub.docker.com/r/pquic/pquic/]. They contain a build of the master branch, along with the necessary tools to build PQUIC.

    docker run -it pquic/pquic
    ./picoquicdemo -h

Building PQUIC

More detailed instructions are available at: https://pquic.org

PQUIC is developed in C, and is based on picoquic (https://github.com/private-octopus/picoquic). It can be built under Linux (the support of Windows is not provided yet). Building the project requires first managing the dependencies, Picotls, uBPF, michelfralloc, libarchive and OpenSSL.

PQUIC on Linux

To build PQUIC on Linux, you need to:

  • Install and build Openssl on your machine

  • Install libarchive. It is usually found in distribution packages (e.g., apt install libarchive-dev) or on (the LibArchive page)[http://libarchive.org/]

  • Clone and compile Picotls (https://github.com/p-quic/picotls), using cmake as explained in the Picotls documentation.

  • Clone and compile PQUIC with both its uBPF and michelfralloc dependencies:

   git submodule update --init
   cd ubpf/vm
   make
   cd ../..
   cd picoquic/michelfralloc
   make
   cd ../..
   cmake .
   make

Documentation

Generate doc with

doxygen
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].