Releases: paritytech/jsonrpsee
v0.16.2
v0.16.1
[v0.16.1] - 2022-11-18
v0.16.1 is release that adds two new APIs to the server http_only
and ws_only
to make it possible to allow only HTTP respectively WebSocket.
Both HTTP and WebSocket are still enabled by default.
[Fixed]
- docs: remove outdated features (#938)
- docs: http client url typo in examples (#940)
- core: remove unused dependency
async-channel
(#940)
[Added]
- server: make it possible to enable ws/http only (#939)
v0.16.0
[v0.16.0] - 2022-11-09
v0.16.0 is a breaking release and the major changes are:
- The server now support WS and HTTP on the same socket and the
jsonrpsee-http-server
andjsonrpsee-ws-server
crates are moved to thejsonrpsee-server
crate instead. - The client batch request API is improved such as the errors and valid responses can be iterated over.
- The server has
tower middleware
support. - The server now adds a tracing span for each connection to distinguish logs per connection.
- CORS has been moved to
tower middleware
.
[Fixed]
- server: read accepted conns properly (#929)
- server: proper handling of batch errors and mixed calls (#917)
- jsonrpsee: add
types
to server feature (#891) - http client: more user-friendly error messages when decoding fails (#853)
- http_server: handle http2 requests host filtering correctly (#866)
- server:
RpcModule::call
decode response correctly (#839)
[Added]
- proc macro: support camelCase & snake_case for object params (#921)
- server: add connection span (#922)
- server: Expose the subscription ID (#900)
- jsonrpsee wrapper crate: add feature async_wasm_client (#893)
- server: add
transport protocol details
to the logger trait (#886) - middleware: Implement proxy URI paths to RPC methods (#859)
- client: Implement
notify_on_disconnect
(#837) - Add
bytes_len()
to Params (#848) - Benchmarks for different HTTP header sizes (#824)
[Changed]
- replace
WS and HTTP servers
with a server that supports bothWS and HTTP
(#863) - Optimize serialization for client parameters (#864)
- Uniform log messages (#855)
- Move CORS logic to tower middleware CorsLayer (#851)
- server: add log for the http request (#854)
- server: add
tower
support (#831) - jsonrpsee: less deps when defining RPC API. (#849)
- server: rename
Middleware
toLogger
(#845) - client: adjust TransportSenderT (#852)
- client: improve batch request API (#910)
- server: Optimize sending for
SubscriptionSink::pipe_from_stream
(#901) - ws-client: downgrade connection log to debug (#865)
- use tracing instrument macro (#846)
v0.15.1
v0.15.0
[v0.15.0] - 2022-07-20
v0.15.0 is a breaking release. The main changes are:
- It's now possible to apply resource limits to subscriptions as well as regular calls.
- We now allow trait bounds to be overridden in the proc macros. See
examples/examples/proc_macro_bounds.rs
for examples. - We've tidied up the subscription API, removing the
PendingSink
concept (you can still manually accept or reject a sink, but otherwise it'll be accepted automatically if you send a message down it) (#799). - Our logging
Middleware
trait has been split intoHttpMiddleware
andWsMiddleware
to better capture the differences between the two. if you use custom middleware, you'll need to implement one or the other trait on it depending on your used transport method (#793). We also provide params and the method type to middleware calls now, too (#820). - We've consistified the API for setting headers across HTTP and WS clients (#799).
Here's the full list of changes:
[Fixed]
- Fix client generation with param_kind = map #805
- ws-server: Handle soketto::Incoming::Closed frames #815
- fix(ws server): reply HTTP 403 on all failed conns #819
- fix clippy #817
[Added]
- Add resource limiting for Subscriptions #786
- feat(logging): add tracing span per JSON-RPC call #722
- feat(clients): add explicit unsubscribe API #789
- Allow trait bounds to be overridden in macro #808
[Changed]
- Point to a new v1.0 milestone in the README.md #801
- chore(deps): upgrade tracing v0.1.34 #800
- Replace cargo-nextest with cargo-test for running tests #802
- Remove deny_unknown_fields from Request and Response #803
- substrate-subxt -> subxt #807
- chore(deps): update pprof requirement from 0.9 to 0.10 #810
- Return error from subscription callbacks #799
- middleware refactoring #793
- feat(middleware): expose type of the method call #820
- Uniform API for custom headers between clients #814
- Update links to client directories. #822
v0.14.0
[v0.14.0] - 2022-06-14
v0.14.0 is breaking release which changes the health and access control APIs
and a bunch of bug fixes.
[Fixed]
- fix(servers): more descriptive errors when calls fail #790
- fix(ws server): support
*
in host and origin filtering #781 - fix(rpc module): register failed
unsubscribe calls
in middleware #792 - fix(http server): omit jsonrpc details in health API #785
- fix(servers): skip leading whitespace in JSON deserialization #783
- fix(ws-server): Submit ping regardless of WS messages #788
- fix(rpc_module): remove expect in
fn call
#774
[Added]
- feat(ws-client):
ping-pong
for WebSocket clients #772 - feat(ws-server): Implement
ping-pong
for WebSocket server #782
[Changed]
v0.13.1
v0.13.0
v0.12.0
[v0.12.0] - 2022-05-06
v0.12.0 is mainly a patch release with some minor features added.
[Added]
- Make it possible to disable batch requests support #744
- feat: add a way to limit the number of subscriptions per connection #739
[Fixed]
- fix(http client): use https connector for https #750
- fix(rpc module): close subscription task when a subscription is
unsubscribed
via theunsubscribe call
#743 - fix(jsonrpsee): generate docs behind features #741
[Changed]
v0.11.0
[v0.11.0] - 2022-04-21
v0.11.0 is a breaking release that reworks how subscriptions are handled by the servers where the users have to explicitly reject or accept each subscription.
The reason for this is that the actual params in the subscription is passed to the callback and if the application decides the params are invalid and the server can't know if the call is going to fail or pass when dispatching the call.
Thus, the actual subscription method call is only answered when the subscription is accepted or rejected.
Additionally, the servers before sent a SubscriptionClosed message
which is now disabled by default because it might break other implementations.
It is still possible to respond with a SubscriptionClosed message
but one has to match on the result from SubscriptionSink::pipe_from_stream
.
This release also adds support for JSON-RPC WASM client
using web-sys bindings.
[Added]
- feat: WASM client via web-sys transport #648
[Changed]
- CI: bump Swatinem/rust-cache from 1.3.0 to 1.4.0 #730
[Fixed]
- fix(rpc module): fail subscription calls with bad params #728