Skip to content
This repository has been archived by the owner on Feb 8, 2023. It is now read-only.
/ respgo Public archive

An golang implementation of REdis Serialization Protocol (RESP).

License

Notifications You must be signed in to change notification settings

alibaba-archive/respgo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

respgo

A Go implementation of REdis Serialization Protocol (RESP).

Build Status Coverage Status License GoDoc

Installation

go get github.com/teambition/respgo

Examples

str := string(respgo.EncodeString("OK"))
fmt.Println(str)
// +OK\r\n

reader := bufio.NewReader(strings.NewReader("+OK\r\n"))
result, _ := respgo.Decode(reader)
fmt.Println(result)
// OK

str = string(respgo.EncodeError("Error message"))
fmt.Println(str)
// -Error message\r\n

reader = bufio.NewReader(strings.NewReader("-Error message\r\n"))
result, _ = respgo.Decode(reader)
fmt.Println(result)
// Error message

str = string(respgo.EncodeInt(1000))
fmt.Println(str)
// :1000\r\n

reader = bufio.NewReader(strings.NewReader(":1000\r\n"))
result, _ = respgo.Decode(reader)
fmt.Println(result)
// 1000

str = string(respgo.EncodeBulkString("foobar"))
fmt.Println(str)
// $6\r\nfoobar\r\n

reader = bufio.NewReader(strings.NewReader("$6\r\nfoobar\r\n"))
result, _ = respgo.Decode(reader)
fmt.Println(result)
// foobar

str = string(respgo.EncodeNull())
fmt.Println(str)
// $-1\r\n

reader = bufio.NewReader(strings.NewReader("$-1\r\n"))
result, _ = respgo.Decode(reader)
fmt.Println(result)
// <nil>

str = string(respgo.EncodeArray([][]byte{
  respgo.EncodeBulkString("foo"),
  respgo.EncodeBulkString("bar")}))
fmt.Println(str)
// *2\r\n$3\r\nfoo\r\n$3\r\nbar\r\n

reader = bufio.NewReader(strings.NewReader("*2\r\n$3\r\nfoo\r\n$3\r\nbar\r\n"))
result, _ = respgo.Decode(reader)
fmt.Println(result)
// [foo bar]

str = string(respgo.EncodeNullArray())
fmt.Println(str)
// *-1\r\n

reader = bufio.NewReader(strings.NewReader("*-1\r\n"))
result, _ = respgo.Decode(reader)
fmt.Println(result)
// <nil>

About

An golang implementation of REdis Serialization Protocol (RESP).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages