Skip to content

jbenet/go-msgio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

242a3f4 · Mar 22, 2016

History

41 Commits
Dec 13, 2014
Sep 4, 2015
May 1, 2015
Mar 22, 2016
Jul 8, 2014
Dec 6, 2014
Dec 6, 2014
May 1, 2015
May 1, 2015
Sep 2, 2015
Oct 9, 2015
Oct 1, 2015
Sep 2, 2015
May 3, 2015
Dec 29, 2014

Repository files navigation

go-msgio - Message IO

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/jbenet/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/jbenet/msgio"
wtr := genReader()
mwtr := msgio.NewWriter(wtr)

for {
  msg := genMessage()
  err := mwtr.WriteMsg(msg)
  if err != nil {
    return err
  }
}

Duplex

import "github.com/jbenet/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
  }
}

Channels

import "github.com/jbenet/msgio"
rw := genReadWriter()
rch := msgio.NewReadChannel(rw)
wch := msgio.NewWriteChannel(rw)

for {
  msg, err := <-rch
  if err != nil {
    return err
  }

  // echo it back :)
  wch<- rw
}

About

simple package to r/w length-delimited slices.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages