Skip to content

libp2p/go-msgio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3b2df50 · Apr 19, 2022
Apr 4, 2022
Nov 19, 2017
Apr 14, 2022
Mar 22, 2016
Apr 14, 2022
Aug 17, 2021
May 1, 2015
Apr 18, 2022
Apr 18, 2022
Sep 2, 2015
Aug 3, 2021
Jun 14, 2019
Aug 3, 2021
Sep 2, 2015
Jul 29, 2020
Jul 29, 2020
Apr 19, 2022

Repository files navigation

go-msgio - Message IO

codecov Travis CI Discourse posts

This is a simple package that helps read and write length-delimited slices. It's helpful for building wire protocols.

Usage

Reading

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

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

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