Categorygithub.com/riftbit/jrpc2client
modulepackage
1.1.0
Repository: https://github.com/riftbit/jrpc2client.git
Documentation: pkg.go.dev

# README

GoLang jrpc2client (early beta)

Website | Blog

license GoDoc Coverage Status Build Status Go Report Card

This is a json-rpc 2.0 client package for golang based on:

to get high perfomance

This package is still in development

Examples

Without custom logger settings

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)
}

With custom logger settings

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)
}

Benchmark results

# Functions

NewClient returns new configured Client to start work with JSON-RPC 2.0 protocol.
NewClientWithLogger returns new configured Client with custom Logger configureation (based on Sirupsen/logrus) to start work with JSON-RPC 2.0 protocol.

# Structs

Client basic struct that contains all method to work with JSON-RPC 2.0 protocol.

# Type aliases

ErrorCode type for error codes.