Go implementation of Hobbits, a modular wire protocol.
go get github.com/renaynay/go-hobbits
Encode a message:
var message encoding.Message{
Version: "0.0",
Protocol: "RPC",
Header: []byte("test header"),
Body: []byte("test body"),
}
encoded, err := encoding.Marshal(message)
if err != nil {
log.Print(err)
}
fmt.Println(encoded)
Decode a message:
decoded, err := encoding.Unmarshal("EWP 13.05 RPC 16 14\nthis is a headerthis is a body")
if err != nil {
log.Print(err)
}
fmt.Println(decoded)
Here is a demo echo server:
server := tcp.NewServer("127.0.0.1", 1240)
err := server.Listen(func(conn net.Conn, message encoding.Message) {
err := server.SendMessage(conn, message)
if err != nil {
log.Print(err)
}
})
log.Print(err)