Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lthibault/quic-mangos
A QUIC transport for mangos (scalability protocols) written in pure Go
https://github.com/lthibault/quic-mangos
distributed golang nanomsg networking protocol quic scalability transport
Last synced: 16 days ago
JSON representation
A QUIC transport for mangos (scalability protocols) written in pure Go
- Host: GitHub
- URL: https://github.com/lthibault/quic-mangos
- Owner: lthibault
- License: apache-2.0
- Created: 2018-02-04T18:06:11.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-09-05T08:27:24.000Z (about 6 years ago)
- Last Synced: 2024-06-20T14:46:52.084Z (5 months ago)
- Topics: distributed, golang, nanomsg, networking, protocol, quic, scalability, transport
- Language: Go
- Size: 58.6 KB
- Stars: 24
- Watchers: 6
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# QUIC-mangos
A QUIC transport for [mangos](https://github.com/nanomsg/mangos) written in pure Go
[![Godoc Reference](https://img.shields.io/badge/godoc-reference-blue.svg?style=flat-square)](https://godoc.org/github.com/lthibault/quic-mangos)
[![Go Report Card](https://goreportcard.com/badge/github.com/lthibault/quic-mangos?style=flat-square)](https://goreportcard.com/report/github.com/lthibault/quic-mangos)## Motivation
QUIC-mangos brings the low latency and multiplexed streaming of the [QUIC](https://en.wikipedia.org/wiki/QUIC#Details) protocol to mangos.
URL paths passed to `sock.Listen` and `sock.Dial` are mapped to a separate QUIC
stream, allowing several `mangos.Socket`s to share a single port mapping.Moreover, QUIC is designed with the modern web in mind and performs significantly
better than TCP over lossy connections. It also features mandatory TLS
encryption, which is configruable via socket options.## Usage
QUIC-mangos can be installed via the standard go toolchain:
```bash
go get -u github.com/lthibault/quic-mangos
```The QUIC transport adheres to the public API for mangos transports.
```go
import (
// ...
"github.com/lthibault/quic-mangos"
)// set up a mangos.Socket the usual way
sock.AddTransport(quic.NewTransport())
_ = sock.Listen("quic://127.0.0.1:9001/foo/bar")
```