MsQuic - Cross-platform, C implementation of the IETF QUIC protocol, exposed to C, C++, C# and Rust

  •        5581

MsQuic is a Microsoft implementation of the IETF QUIC protocol. QUIC, a UDP-based, stream-multiplexing, encrypted transport protocol. It is cross-platform, written in C and designed to be a general purpose QUIC library. MsQuic also has C++ API wrapper classes and exposes interop layers for both Rust and C#.

QUIC has many benefits when compared to existing "TLS over TCP" scenarios:

  • All packets are encrypted and handshake is authenticated with TLS 1.3.
  • Parallel streams of (reliable and unreliable) application data.
  • Exchange application data in the first round trip (0-RTT).
  • Improved congestion control and loss recovery.
  • Survives a change in the clients IP address or port.
  • Stateless load balancing.
  • Easily extendable for new features and extensions.



Related Projects

yomo - 🦖 Serverless Streaming Framework for Low-latency Edge Computing applications, running atop QUIC protocol, as Metaverse infrastructure, engaging 5G technology

  •    Go

YoMo is an open-source Streaming Serverless Framework for building Low-latency Edge Computing applications. Built atop QUIC Transport Protocol and Functional Reactive Programming interface. makes real-time data processing reliable, secure, and easy. Congratulations! You have done your first YoMo Stream Function.

mvfst - An implementation of the QUIC transport protocol.

  •    C++

mvfst (Pronounced move fast) is a client and server implementation of IETF QUIC protocol in C++ by Facebook. QUIC is a UDP based reliable, multiplexed transport protocol that will become an internet standard. The goal of mvfst is to build a performant implementation of the QUIC transport protocol that applications could adapt for use cases on both the internet and the data-center. mvfst has been tested at scale on android, iOS apps, as well as servers and has several features to support large scale deployments. mvfst largely depends on two libraries: folly and fizz.

libsrtp - Library for SRTP (Secure Realtime Transport Protocol)

  •    C

This package provides an implementation of the Secure Real-time Transport Protocol (SRTP), the Universal Security Transform (UST), and a supporting cryptographic kernel. The SRTP API is documented in include/srtp.h, and the library is in libsrtp2.a (after compilation). This document describes libSRTP, the Open Source Secure RTP library from Cisco Systems, Inc. RTP is the Real-time Transport Protocol, an IETF standard for the transport of real-time data such as telephony, audio, and video, defined by RFC 3550. Secure RTP (SRTP) is an RTP profile for providing confidentiality to RTP data and authentication to the RTP header and payload. SRTP is an IETF Standard, defined in RFC 3711, and was developed in the IETF Audio/Video Transport (AVT) Working Group. This library supports all of the mandatory features of SRTP, but not all of the optional features. See the Supported Features section for more detailed information.

quinn - Futures-based QUIC implementation in Rust

  •    Rust

Quinn is a pure-rust, future-based implementation of the QUIC transport protocol undergoing standardization by the IETF. This library is at draft 32. This launches an HTTP 0.9 server on the loopback address serving the current working directory, with the client fetching ./Cargo.toml. By default, the server generates a self-signed certificate and stores it to disk, where the client will automatically find and trust it.

quic-go - A QUIC implementation in pure go

  •    Go

quic-go is an implementation of the QUIC protocol in Go. quic-go is compatible with the current version(s) of Google Chrome and QUIC as deployed on Google's servers. We're actively tracking the development of the Chrome code to ensure compatibility as the protocol evolves. In that process, we're dropping support for old QUIC versions. As Google's QUIC versions are expected to converge towards the IETF QUIC draft, quic-go will eventually implement that draft.

aioquic - QUIC and HTTP/3 implementation in Python

  •    Python

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.

libquic - QUIC, a multiplexed stream transport over UDP

  •    C++

QUIC is an experimental protocol aimed at reducing web latency over that of TCP. On the surface, QUIC is very similar to TCP+TLS+SPDY implemented on UDP. Because TCP is implemented in operating system kernels, and middlebox firmware, making significant changes to TCP is next to impossible. However, since QUIC is built on top of UDP, it suffers from no such limitations. See Chromium QUIC Page for detailed information.

WebSocket++ - C++ Websocket client/server library

  •    C++

WebSocket++ is a header only C++ library that implements RFC6455 The WebSocket Protocol. It allows integrating WebSocket client and server functionality into C++ programs. It uses interchangeable network transport modules including one based on raw char buffers, one based on C++ iostreams, and one based on Asio (either via Boost or standalone). End users can write additional transport policies to support other networking or event libraries as needed.

message-io - Fast and easy-to-use event-driven network library.

  •    Rust

message-io is a fast and easy-to-use event-driven network library. The library handles the OS socket internally and offers a simple event message API to the user. It also allows you to make an adapter for your own transport protocol following some rules, delegating the tedious asynchrony and thread management to the library. Managing sockets is hard because you need to fight with threads, concurrency, full duplex, encoding, IO errors that come from the OS (which are really difficult to understand in some situations), etc. If you make use of non-blocking sockets, it adds a new layer of complexity: synchronize the events that come asynchronously from the Operating System.

TLS - Transport Layer Security protocol implementation in Python

  •    Python

Transport Layer Security (TLS) is a cryptographic protocol designed to provide communication security over the Internet. This is an open source Python implementation of TLS 1.2, using the Python Cryptographic Authority's (PyCA's) Cryptography libraries for all cryptographic primitives (e.g. AES, RSA, etc.). This project is part of PyCA's efforts to standardize and improve crypto libraries in Python.

goquic - QUIC support for Go

  •    C

This is a work-in-progress QUIC implementation for Go. This is based on libquic library, which is in turn based on original QUIC implementation on Chromium. QUIC is an experimental protocol aimed at reducing web latency over that of TCP. On the surface, QUIC is very similar to TCP+TLS+SPDY implemented on UDP. Because TCP is implement in operating system kernels, and middlebox firmware, making significant changes to TCP is next to impossible. However, since QUIC is built on top of UDP, it suffers from no such limitations.

James - Enterprise Mail Server

  •    Java

James (a.k.a Java Apache Mail Enterprise Server) is a 100% pure Java SMTP and POP3 Mail server, and NNTP News server designed to be a complete and portable enterprise mail/messaging engine solution based on currently available open messaging protocols.

rdpy - Remote Desktop Protocol in Twisted Python

  •    Python

Remote Desktop Protocol in twisted python. RDPY is a pure Python implementation of the Microsoft RDP (Remote Desktop Protocol) protocol (client and server side). RDPY is built over the event driven network engine Twisted. RDPY support standard RDP security layer, RDP over SSL and NLA authentication (through ntlmv2 authentication protocol).

Restofire - Restofire is a protocol oriented network abstraction layer in swift that is built on top of Alamofire to use services in a declarative way

  •    Swift

Restofire is a protocol oriented network abstraction layer in swift that is built on top of Alamofire to use services in a declarative way. Carthage is a decentralized dependency manager that automates the process of adding frameworks to your Cocoa application.

PJON - PJON® is an open-source network protocol compatible with Arduino, ESP8266, STM32, Teensy, Raspberry Pi, Linux and Windows

  •    C++

PJON® (Padded Jittering Operative Network) is an Arduino compatible, multi-master, multi-media network protocol. It proposes a Standard, it is designed as a framework and implements a totally software emulated network protocol stack that can be easily cross-compiled on many architectures like ATtiny, ATmega, ESP8266, ESP32, STM32, Teensy, Raspberry Pi, Linux, Windows x86 and Apple machines. It is a valid tool to quickly and comprehensibly build a network of devices. Visit wiki and documentation to know more about the PJON Standard. Feel free to send a pull request sharing something you have made that could help. If you want to support us you can also try to solve an issue. Thank you for your support.

Manyverse - A social network off the grid

  •    Typescript

Manyverse is a social network built on the peer-to-peer SSB (Scuttlebutt) protocol. It is a social networking app with features posts, likes, profiles, private messages, etc. But it's not running in the cloud owned by a company, instead it stores all your data in your phone. This way you can access your data even when you are offline.

Paramiko - The leading native Python SSHv2 protocol library.

  •    Python

"Paramiko" is a combination of the Esperanto words for "paranoid" and "friend". It's a module for Python 2.7/3.4+ that implements the SSH2 protocol for secure (encrypted and authenticated) connections to remote machines. Unlike SSL (aka TLS), SSH2 protocol does not require hierarchical certificates signed by a powerful central authority. You may know SSH2 as the protocol that replaced Telnet and rsh for secure access to remote shells, but the protocol also includes the ability to open arbitrary channels to remote services across the encrypted tunnel (this is how SFTP works, for example).

SimpleX Chat - Decentralized chat with a focus on users’ privacy

  •    Haskell

The world's most private and secure chat - open-source, decentralized, and without global identities of any kind. You can use it from the terminal UI, with all contacts and groups in one window. It is a federated chat system with end to end encryption support and low risk of man in the middle attack.

Netty - Event-driven Asynchronous Network Application Framework

  •    Java

Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifies and streamlines network programming such as TCP and UDP socket server.

fossa - Async non-blocking multi-protocol networking library for C/C++

  •    C

Fossa is a multi-protocol networking library written in C. It provides easy to use event-driven interface that allows to implement network protocols or scalable network applications with little effort. Fossa helps developers to manage the complexity of network programming and let them concentrate on the logic, saving time and money. Fossa has built-in support for several protocols, like HTTP, Websocket, MQTT, mDNS. Example applications include Websocket-based chat server, JSON-RPC server, database server with RESTful API, MQTT broker, netcat with SSL and hexdump, Raspberry PI camera video feed + led control, and more.

We have large collection of open source products. Follow the tags from Tag Cloud >>

Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.