jsonrpc

2024-10-12

JSON-RPC 2.0 server/client implementation

Upstream URL

github.com/cxxxr/jsonrpc

Author

Eitaro Fukamachi

License

BSD 2-Clause
README

jsonrpc

Quicklisp dist Build Status Coverage Status

JSON-RPC 2.0 server/client for Common Lisp.

Usage

;; server
(defvar *server* (jsonrpc:make-server))
(jsonrpc:expose *server* "sum" (lambda (args) (reduce #'+ args)))

(jsonrpc:server-listen *server* :port 50879 :mode :tcp)
;; client
(defvar *client* (jsonrpc:make-client))
(jsonrpc:client-connect *client* :url "http://127.0.0.1:50879" :mode :tcp)
(jsonrpc:call *client* "sum" '(10 20))
;=> 30

;; Calling with :timeout option
(jsonrpc:call *client* "sum" '(10 20) :timeout 1.0)
;=> 30

To invoke an interactive debugger on any errors in your handlers, set jsonrpc:*debug-on-error* to t.

Experimental features (only for Server)

  • broadcast
  • multicall-async

Author

Copyright

Copyright (c) 2016 Eitaro Fukamachi (e.arrows@gmail.com)

License

Licensed under the BSD 2-Clause License.

Dependencies (19)

  • alexandria
  • babel
  • bordeaux-threads
  • chanl
  • clack
  • cl-ppcre
  • cl+ssl
  • dexador
  • dissect
  • event-emitter
  • fast-io
  • quri
  • rove
  • trivial-timeout
  • trivial-utf-8
  • usocket
  • vom
  • websocket-driver
  • yason

Dependents (1)

  • GitHub
  • Quicklisp