MIT licensed by Jean-Pierre Rupp
Maintained by [email protected]
This version can be pinned in stack with:json-rpc-1.1.1@sha256:f4666c65fd186859a075b412b3a6798d0a78491a2f6f86f86186b0c15b6c27ab,3588

Module documentation for 1.1.1

json-rpc

Fully-featured JSON-RPC 2.0 library for Haskell programs.

This JSON-RPC library is fully-compatible with JSON-RPC 2.0 and 1.0. It provides an interface that combines a JSON-RPC client and server. It can set and keep track of request ids to parse responses. There is support for sending and receiving notifications. You may use any underlying transport. Basic TCP client and server provided.

A JSON-RPC application using this interface is considered to be peer-to-peer, as it can send and receive all types of JSON-RPC message independent of whether it originated the connection.

Documentation

Examples

Changes

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

1.1.1 - 2023-03-14

Fixed

  • Close TBMChan when the session is closed

1.1.0 - 2023-12-29

Changed

  • Update dependency to Aeson 2.2.

1.0.4 - 2022-05-15

Fixed

  • Remove Arbitrary Value instance because it is already provided by the aeson package.

Changed

  • Relax restrictions on params field for JSON-RPCv1 requests.
  • Bump minimum version of aeson accordingly.

1.0.3 - 2020-06-19

Changed

  • LogSource (defined in monad-logger) for this library is set to "json-rpc" so that logs can be filtered base on it.

1.0.2 - 2020-06-12

Changed

  • Change license to MIT.

1.0.1 - 2019-01-01

Fixed

  • Correct JSON-RPC 2.0 methods returning null result.

1.0.0 - 2018-08-12

Added

  • Complete JSON-RPC 1.0 and 2.0 support.
  • Ability to use either endpoint to send and receive requests, responses or notifications.
  • Simple TCP client/server implementation available.
  • Example files.
  • Exhaustive test suite.
  • Compatibility with GHC 8.4.
  • Support semantic versioning.
  • Add a changelog.