Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/marten-seemann/codecov-test
https://github.com/marten-seemann/codecov-test
Last synced: 19 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/marten-seemann/codecov-test
- Owner: marten-seemann
- License: mpl-2.0
- Created: 2021-02-16T08:10:58.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-02-16T09:11:49.000Z (almost 4 years ago)
- Last Synced: 2024-12-20T00:08:51.008Z (22 days ago)
- Language: Go
- Size: 4.29 MB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Yamux
Yamux (Yet another Multiplexer) is a multiplexing library for Golang.
It relies on an underlying connection to provide reliability
and ordering, such as TCP or Unix domain sockets, and provides
stream-oriented multiplexing. It is inspired by SPDY but is not
interoperable with it.Yamux features include:
* Bi-directional streams
* Streams can be opened by either client or server
* Server-side push support
* Flow control
* Avoid starvation
* Back-pressure to prevent overwhelming a receiver
* Keep Alives
* Enables persistent connections over a load balancer
* Efficient
* Enables thousands of logical streams with low overhead## Documentation
For complete documentation, see the associated [Godoc](http://godoc.org/github.com/libp2p/go-yamux).
## Specification
The full specification for Yamux is provided in the `spec.md` file.
It can be used as a guide to implementors of interoperable libraries.## Usage
Using Yamux is remarkably simple:
```go
func client() {
// Get a TCP connection
conn, err := net.Dial(...)
if err != nil {
panic(err)
}// Setup client side of yamux
session, err := yamux.Client(conn, nil)
if err != nil {
panic(err)
}// Open a new stream
stream, err := session.Open()
if err != nil {
panic(err)
}// Stream implements net.Conn
stream.Write([]byte("ping"))
}func server() {
// Accept a TCP connection
conn, err := listener.Accept()
if err != nil {
panic(err)
}// Setup server side of yamux
session, err := yamux.Server(conn, nil)
if err != nil {
panic(err)
}// Accept a stream
stream, err := session.Accept()
if err != nil {
panic(err)
}// Listen for a message
buf := make([]byte, 4)
stream.Read(buf)
}```
---
The last gx published version of this module was: 1.1.5: QmUNMbRUsVYHi1D14annF7Rr7pQAX7TNLwpRCa975ojKnw