All Projects → aiortc → Aioquic

aiortc / Aioquic

Licence: bsd-3-clause
QUIC and HTTP/3 implementation in Python

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Aioquic

Fatt
FATT /fingerprintAllTheThings - a pyshark based script for extracting network metadata and fingerprints from pcap files and live network traffic
Stars: ✭ 490 (-18.33%)
Mutual labels:  network, quic, tls
Base Drafts
Internet-Drafts that make up the base QUIC specification
Stars: ✭ 1,270 (+111.67%)
Mutual labels:  quic, tls
Siris
DEPRECATED: The community driven fork of Iris. The fastest web framework for Golang!
Stars: ✭ 146 (-75.67%)
Mutual labels:  quic, tls
Python Proxy
HTTP/HTTP2/HTTP3/Socks4/Socks5/Shadowsocks/ShadowsocksR/SSH/Redirect/Pf TCP/UDP asynchronous tunnel proxy implemented in Python 3 asyncio.
Stars: ✭ 692 (+15.33%)
Mutual labels:  asyncio, quic
Docker Nginx Http3
Alpine Linux image with Nginx 1.19.4 (mainline) with HTTP/3 (QUIC), TLSv1.3, 0-RTT, brotli, NJS support, and 10 MB size. All built on the bleeding edge for max performance. Built on the edge, for the edge.
Stars: ✭ 820 (+36.67%)
Mutual labels:  quic, tls
Vibe Core
Repository for the next generation of vibe.d's core package.
Stars: ✭ 56 (-90.67%)
Mutual labels:  asyncio, network
React Native Tcp Socket
React Native TCP socket API for Android, iOS & macOS with client SSL/TLS support
Stars: ✭ 112 (-81.33%)
Mutual labels:  network, tls
Trojan Go
Go实现的Trojan代理,支持多路复用/路由功能/CDN中转/Shadowsocks混淆插件,多平台,无依赖。A Trojan proxy written in Go. An unidentifiable mechanism that helps you bypass GFW. https://p4gefau1t.github.io/trojan-go/
Stars: ✭ 4,049 (+574.83%)
Mutual labels:  network, tls
gost
GO Simple Tunnel - a simple tunnel written in golang
Stars: ✭ 8,395 (+1299.17%)
Mutual labels:  tls, quic
Libae
redis's async event loop library
Stars: ✭ 160 (-73.33%)
Mutual labels:  asyncio, network
Twisted
Event-driven networking engine written in Python.
Stars: ✭ 4,442 (+640.33%)
Mutual labels:  network, tls
Gsnova
Private proxy solution & network troubleshooting tool.
Stars: ✭ 509 (-15.17%)
Mutual labels:  quic, tls
Opsdroid
🤖 An open source chat-ops bot framework
Stars: ✭ 563 (-6.17%)
Mutual labels:  asyncio
Blinksocks
A framework for building composable proxy protocol stack.
Stars: ✭ 587 (-2.17%)
Mutual labels:  tls
Tornado Celery
Non-blocking Celery client for Tornado
Stars: ✭ 561 (-6.5%)
Mutual labels:  asyncio
Testssl.sh
Testing TLS/SSL encryption anywhere on any port
Stars: ✭ 5,676 (+846%)
Mutual labels:  tls
Front End Learning To Organize Notes
☀小狮子前端の学习☁整理笔记❤ Front-end-learning-to-organize-notes 帮你整理好前端知识体系、更高效地吸收经验成果;另附小狮子前端进阶小册食用指北,敬请关注!
Stars: ✭ 593 (-1.17%)
Mutual labels:  network
Sonobus
Source code for SonoBus, a real-time network audio streaming collaboration tool.
Stars: ✭ 586 (-2.33%)
Mutual labels:  network
Pyexfil
A Python Package for Data Exfiltration
Stars: ✭ 554 (-7.67%)
Mutual labels:  quic
Invoke Socksproxy
Socks proxy, and reverse socks server using powershell.
Stars: ✭ 540 (-10%)
Mutual labels:  network

aioquic

|rtd| |pypi-v| |pypi-pyversions| |pypi-l| |tests| |codecov| |black|

.. |rtd| image:: https://readthedocs.org/projects/aioquic/badge/?version=latest :target: https://aioquic.readthedocs.io/

.. |pypi-v| image:: https://img.shields.io/pypi/v/aioquic.svg :target: https://pypi.python.org/pypi/aioquic

.. |pypi-pyversions| image:: https://img.shields.io/pypi/pyversions/aioquic.svg :target: https://pypi.python.org/pypi/aioquic

.. |pypi-l| image:: https://img.shields.io/pypi/l/aioquic.svg :target: https://pypi.python.org/pypi/aioquic

.. |tests| image:: https://github.com/aiortc/aioquic/workflows/tests/badge.svg :target: https://github.com/aiortc/aioquic/actions

.. |codecov| image:: https://img.shields.io/codecov/c/github/aiortc/aioquic.svg :target: https://codecov.io/gh/aiortc/aioquic

.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/python/black

What is aioquic?

aioquic is a library for the QUIC network protocol in Python. It features a minimal TLS 1.3 implementation, a QUIC stack and an HTTP/3 stack.

QUIC standardisation is not finalised yet, but aioquic closely tracks the specification drafts and is regularly tested for interoperability against other QUIC implementations_.

To learn more about aioquic please read the documentation_.

Why should I use aioquic?

aioquic has been designed to be embedded into Python client and server libraries wishing to support QUIC and / or HTTP/3. The goal is to provide a common codebase for Python libraries in the hope of avoiding duplicated effort.

Both the QUIC and the HTTP/3 APIs follow the "bring your own I/O" pattern, leaving actual I/O operations to the API user. This approach has a number of advantages including making the code testable and allowing integration with different concurrency models.

Features

  • QUIC stack conforming with draft-28
  • HTTP/3 stack conforming with draft-28
  • minimal TLS 1.3 implementation
  • IPv4 and IPv6 support
  • connection migration and NAT rebinding
  • logging TLS traffic secrets
  • logging QUIC events in QLOG format
  • HTTP/3 server push support

Requirements

aioquic requires Python 3.6 or better, and the OpenSSL development headers.

Linux .....

On Debian/Ubuntu run:

.. code-block:: console

$ sudo apt install libssl-dev python3-dev

On Alpine Linux you will also need the following:

.. code-block:: console

$ sudo apt install bsd-compat-headers libffi-dev

OS X ....

On OS X run:

.. code-block:: console

$ brew install openssl

You will need to set some environment variables to link against OpenSSL:

.. code-block:: console

$ export CFLAGS=-I/usr/local/opt/openssl/include $ export LDFLAGS=-L/usr/local/opt/openssl/lib

Windows .......

On Windows the easiest way to install OpenSSL is to use Chocolatey_.

.. code-block:: console

choco install openssl

You will need to set some environment variables to link against OpenSSL:

.. code-block:: console

$Env:INCLUDE = "C:\Progra1\OpenSSL-Win64\include" $Env:LIB = "C:\Progra1\OpenSSL-Win64\lib"

Running the examples

aioquic comes with a number of examples illustrating various QUIC usecases.

You can browse these examples here: https://github.com/aiortc/aioquic/tree/main/examples

License

aioquic is released under the BSD license_.

.. _read the documentation: https://aioquic.readthedocs.io/en/latest/ .. _QUIC implementations: https://github.com/quicwg/base-drafts/wiki/Implementations .. _cryptography: https://cryptography.io/ .. _Chocolatey: https://chocolatey.org/ .. _BSD license: https://aioquic.readthedocs.io/en/latest/license.html

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].