https://github.com/libp2p/go-msgio
simple package to r/w length-delimited slices.
https://github.com/libp2p/go-msgio
Last synced: about 1 year ago
JSON representation
simple package to r/w length-delimited slices.
- Host: GitHub
- URL: https://github.com/libp2p/go-msgio
- Owner: libp2p
- License: mit
- Created: 2017-11-17T19:30:48.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2025-03-24T09:27:35.000Z (over 1 year ago)
- Last Synced: 2025-03-28T12:09:37.774Z (about 1 year ago)
- Language: Go
- Homepage:
- Size: 110 KB
- Stars: 14
- Watchers: 17
- Forks: 12
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# go-msgio - Message IO
[](https://protocol.ai)
[](https://libp2p.io/)
[](http://webchat.freenode.net/?channels=%23libp2p)
[](https://codecov.io/gh/libp2p/go-msgio)
[](https://travis-ci.org/libp2p/go-msgio)
[](https://discuss.libp2p.io)
This is a simple package that helps read and write length-delimited slices. It's helpful for building wire protocols.
## Usage
### Reading
```go
import "github.com/libp2p/go-msgio"
rdr := ... // some reader from a wire
mrdr := msgio.NewReader(rdr)
for {
msg, err := mrdr.ReadMsg()
if err != nil {
return err
}
doSomething(msg)
}
```
### Writing
```go
import "github.com/libp2p/go-msgio"
wtr := genReader()
mwtr := msgio.NewWriter(wtr)
for {
msg := genMessage()
err := mwtr.WriteMsg(msg)
if err != nil {
return err
}
}
```
### Duplex
```go
import "github.com/libp2p/go-msgio"
rw := genReadWriter()
mrw := msgio.NewReadWriter(rw)
for {
msg, err := mrdr.ReadMsg()
if err != nil {
return err
}
// echo it back :)
err = mwtr.WriteMsg(msg)
if err != nil {
return err
}
}
```
---
The last gx published version of this module was: 0.0.6: QmcxL9MDzSU5Mj1GcWZD8CXkAFuJXjdbjotZ93o371bKSf