Help us shape the future of Go! Take the 2026 Go Developer Survey

jsonrpc2

package
v0.1.23 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 6, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client is a minimal JSON-RPC 2.0 client for stdio transport

func NewClient

func NewClient(stdin io.WriteCloser, stdout io.ReadCloser) *Client

NewClient creates a new JSON-RPC client

func (*Client) Notify

func (c *Client) Notify(method string, params map[string]any) error

Notify sends a JSON-RPC notification (no response expected)

func (*Client) Request

func (c *Client) Request(method string, params map[string]any) (map[string]any, error)

Request sends a JSON-RPC request and waits for the response

func (*Client) SetNotificationHandler

func (c *Client) SetNotificationHandler(handler NotificationHandler)

SetNotificationHandler sets the handler for incoming notifications

func (*Client) SetRequestHandler

func (c *Client) SetRequestHandler(method string, handler RequestHandler)

SetRequestHandler registers a handler for incoming requests from the server

func (*Client) Start

func (c *Client) Start()

Start begins listening for messages in a background goroutine

func (*Client) Stop

func (c *Client) Stop()

Stop stops the client and cleans up

type Error

type Error struct {
	Code    int            `json:"code"`
	Message string         `json:"message"`
	Data    map[string]any `json:"data,omitempty"`
}

Error represents a JSON-RPC error response

func (*Error) Error

func (e *Error) Error() string

type Notification

type Notification struct {
	JSONRPC string         `json:"jsonrpc"`
	Method  string         `json:"method"`
	Params  map[string]any `json:"params"`
}

Notification represents a JSON-RPC 2.0 notification

type NotificationHandler

type NotificationHandler func(method string, params map[string]any)

NotificationHandler handles incoming notifications

type Request

type Request struct {
	JSONRPC string          `json:"jsonrpc"`
	ID      json.RawMessage `json:"id"`
	Method  string          `json:"method"`
	Params  map[string]any  `json:"params"`
}

Request represents a JSON-RPC 2.0 request

type RequestHandler

type RequestHandler func(params map[string]any) (map[string]any, *Error)

RequestHandler handles incoming server requests and returns a result or error

type Response

type Response struct {
	JSONRPC string          `json:"jsonrpc"`
	ID      json.RawMessage `json:"id,omitempty"`
	Result  map[string]any  `json:"result,omitempty"`
	Error   *Error          `json:"error,omitempty"`
}

Response represents a JSON-RPC 2.0 response

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL