Skip to content

Releases: hankhsu1996/jsonrpc-cpp-lib

v2.1.1

25 Mar 05:26
10d9f52
Compare
Choose a tag to compare

Changed

  • Replace direct framing with MessageFramer class
  • Add comprehensive split message tests

v2.1.0

16 Mar 04:27
6c013f5
Compare
Choose a tag to compare

Changed

  • Renamed project from "jsonrpc-cpp-lib" to simply "jsonrpc" for cleaner integration
  • Simplified CMake installation process for better reliability

v2.0.2

13 Mar 07:42
5d8b97e
Compare
Choose a tag to compare

This release updates several key dependencies to their latest stable versions and makes improvements to the build configuration.

Changes

  • Update Catch2 from 3.6.0 to 3.8.0
  • Update spdlog from 1.14.1 to 1.15.1
  • Update asio from 1.28.2 to 1.32.0
  • Update bazel_skylib from 1.5.0 to 1.7.1
  • Modify CMakePresets.json to use Clang compiler by default, resolving batch processing memory allocation issues experienced with GCC

v2.0.1

10 Mar 05:02
e84f4ce
Compare
Choose a tag to compare

Changed

  • Restructured Bazel build system for better organization

v2.0.0

09 Mar 08:37
08909c6
Compare
Choose a tag to compare

Major release that transitions the library to use Asio coroutines for all async operations, providing better performance and more intuitive async code.

Breaking Changes

  • Complete migration to Asio coroutines with awaitable interfaces
  • Method signatures now return asio::awaitable<> instead of direct values
  • Client code must use co_await with coroutine functions
  • Method handlers must be implemented as coroutines
  • Removed synchronous blocking API methods
  • Removed thread pool-based execution model
  • Removed stdio transport layer

Key Improvements

  • Enhanced asynchronous operations using Asio coroutines
  • Better cancellation and timeout support via Asio facilities
  • New static factory method CreateClient for simpler client initialization
  • Improved error handling with exception propagation in coroutines
  • More efficient resource usage with IO context-based execution
  • Added CMake export configuration for easier integration
  • New LSP client example using TypeScript

Migration Guide

If you're upgrading from v1.0.0, you'll need to:

  1. Update method handlers to use coroutines with co_await
  2. Replace direct return values with asio::awaitable<>
  3. Use CreateClient factory method for client initialization
  4. Switch from stdio transport to alternative transport layers
  5. Update your build system to use C++20 coroutines

Refer to the updated examples in the repository for migration patterns and new usage guidelines.

v1.0.0

16 Aug 18:33
740d8de
Compare
Choose a tag to compare

This is the initial stable release of the JSON-RPC 2.0 Modern C++ Library.

Key Features:

  • Fully compliant with JSON-RPC 2.0 specification.
  • Supports method calls, notifications, and batch requests.
  • Modern C++20 implementation with minimal dependencies.
  • Transport-agnostic with support for stdio and HTTP connectors.
  • Example implementations for both client and server.

Refer to the README for detailed usage instructions and setup guides.