This is a json-rpc 2.0 client package for golang based on:
- HTTP Client: erikdubbelboer/fasthttp
- JSON Parser: pquerna/ffjson
- Logger: Sirupsen/logrus
- Errors: riftbit/jrpc2errors
to get high perfomance
This package is still in development
package main
import (
"github.com/riftbit/jrpc2client"
)
type TestReply struct {
LogID string `json:"log_id"`
}
func main() {
client := jrpc2client.NewClient()
client.SetBaseURL("http://127.0.0.1:65001")
client.SetUserAgent("JsonRPC Test Client")
client.SetBasicAuth("user", "password")
dstT := &TestReply{}
err := client.Call("/api", "demo.Test", TestArgs{ID: "TESTER_ID_1"}, dstT)
if err != nil {
panic(err)
}
println(dstT.LogID)
}
package main
import (
"github.com/riftbit/jrpc2client"
)
type TestReply struct {
LogID string `json:"log_id"`
}
func main() {
logger := &logrus.Logger{
Out: os.Stdout,
Formatter: &logrus.JSONFormatter{DisableTimestamp: false},
Level: logrus.DebugLevel,
}
client := jrpc2client.NewClientWithLogger(logger)
client.SetBaseURL("http://127.0.0.1:65001")
client.SetUserAgent("JsonRPC Test Client")
client.SetBasicAuth("user", "password")
dstT := &TestReply{}
err := client.Call("/api", "demo.Test", TestArgs{ID: "TESTER_ID_3"}, dstT)
if err != nil {
panic(err)
}
println(dstT.LogID)
}