- Aug 24, 2022
-
-
Alexandru Vasile authored
* middleware: Proxy `GET /path` requests to internal methods Signed-off-by: Alexandru Vasile <[email protected]> * middleware: Modify the response for proxies Signed-off-by: Alexandru Vasile <[email protected]> * examples: Add `ProxyRequestLayer` example for URI redirection Signed-off-by: Alexandru Vasile <[email protected]> * http: Remove internal Health API Signed-off-by: Alexandru Vasile <[email protected]> * middleware: Replace `ResponseFuture` with pinning Signed-off-by: Alexandru Vasile <[email protected]> * middleware: Use `Uri::from_static` and `RequestSer` for body message Signed-off-by: Alexandru Vasile <[email protected]> * middleware: Use `Arc<str>` instead of `String` Signed-off-by: Alexandru Vasile <[email protected]> * Rename `ProxyRequest` to `ProxyGetRequest` and rename mod to `middleware` Signed-off-by: Alexandru Vasile <[email protected]> * middleware: Improve docs Signed-off-by: Alexandru Vasile <[email protected]> * middleware: Fail if path does not start with `/` Signed-off-by: Alexandru Vasile <[email protected]> * http-server: Remove pin project dependency Signed-off-by: Alexandru Vasile <[email protected]> * Rename `proxy_request.rs` to `proxy_get_request.rs` Signed-off-by: Alexandru Vasile <[email protected]> Signed-off-by: Alexandru Vasile <[email protected]>
-
- Aug 17, 2022
-
-
Alexandru Vasile authored
* client: Log when frontend is dropped Signed-off-by: Alexandru Vasile <[email protected]> * client: Never fail to handle frontend messages Signed-off-by: Alexandru Vasile <[email protected]> * client: Format frontend warnings Signed-off-by: Alexandru Vasile <[email protected]> * client: Format backend messages Signed-off-by: Alexandru Vasile <[email protected]> * client: Uniform log messages Signed-off-by: Alexandru Vasile <[email protected]> * server: Uniform logs Signed-off-by: Alexandru Vasile <[email protected]> * server: Adjust logs Signed-off-by: Alexandru Vasile <[email protected]> * test: Fix cargo clippy Signed-off-by: Alexandru Vasile <[email protected]> * server: Log error as unrecoverable Signed-off-by: Alexandru Vasile <[email protected]> * Update core/src/client/async_client/mod.rs Co-authored-by: Niklas Adolfsson <[email protected]> * Update core/src/client/async_client/mod.rs Co-authored-by: Niklas Adolfsson <[email protected]> Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: Niklas Adolfsson <[email protected]>
-
- Aug 16, 2022
-
-
Alexandru Vasile authored
* client: Implement `notify_on_disconnect` Signed-off-by: Alexandru Vasile <[email protected]> * Revert "client: Implement `notify_on_disconnect`" This reverts commit c8ffaa4c . * client: Rely on `tokio::sync::mpsc::Sender` to notify on disconnect Signed-off-by: Alexandru Vasile <[email protected]> * Implement `InternalError` for tokio and futures_channel's SendError Signed-off-by: Alexandru Vasile <[email protected]> * client: Remove tokio-stream dependency Signed-off-by: Alexandru Vasile <[email protected]> * client: Rename `notify_on_disconnect` to `on_disconnect` Signed-off-by: Alexandru Vasile <[email protected]> * Add `tokio/sync` as dependency of client feature Signed-off-by: Alexandru Vasile <[email protected]> * wasm-client: Use `tokio::sync::mpsc::channel` for notify on disconnect Signed-off-by: Alexandru Vasile <[email protected]> * Add tokio/sync dependency to satisfy `--no-default-features` check Signed-off-by: Alexandru Vasile <[email protected]> * Best effort to close channel on client drops Signed-off-by: Alexandru Vasile <[email protected]> * revert to: client: Implement `notify_on_disconnect` Signed-off-by: Alexandru Vasile <[email protected]> * Replace tokio/sync with oneshot channel Signed-off-by: Alexandru Vasile <[email protected]> * tests: Check `client.on_disconnect()` returns when server shuts down Signed-off-by: Alexandru Vasile <[email protected]> * tests: Fix comment typo Signed-off-by: Alexandru Vasile <[email protected]> * tests: Call `on_disconnect()` multiple times Signed-off-by: Alexandru Vasile <[email protected]> * tests: Call `on_disconnect` with closed server Signed-off-by: Alexandru Vasile <[email protected]> Signed-off-by: Alexandru Vasile <[email protected]>
-
Alexandru Vasile authored
* http: Add inner server data structure Signed-off-by: Alexandru Vasile <[email protected]> * http: Handle RPC messages Signed-off-by: Alexandru Vasile <[email protected]> * http: Implement equivalent of `service_fn` Signed-off-by: Alexandru Vasile <[email protected]> * http: Implement equivalent of `make_service_fn` Signed-off-by: Alexandru Vasile <[email protected]> * http: Expose `tower` compatible service Signed-off-by: Alexandru Vasile <[email protected]> * http: Prebuild http server with optional listener Signed-off-by: Alexandru Vasile <[email protected]> * examples: WIP tower service Signed-off-by: Alexandru Vasile <[email protected]> * http: Fix warnings Signed-off-by: Alexandru Vasile <[email protected]> * tower_http: Fix warnings Signed-off-by: Alexandru Vasile <[email protected]> * http: Ensure service works with tower Signed-off-by: Alexandru Vasile <[email protected]> * http: Remove `RPSeeServerMakeSvc` to allow further flexibility Signed-off-by: Alexandru Vasile <[email protected]> * tower_http: Fix warnings Signed-off-by: Alexandru Vasile <[email protected]> * tower_http: Resubmit the same request for testing Signed-off-by: Alexandru Vasile <[email protected]> * http: Transform builder into service directly Signed-off-by: Alexandru Vasile <[email protected]> * http: Rename `RPSeeServerSvc` into user friendly `TowerService` Signed-off-by: Alexandru Vasile <[email protected]> * http: Rely on internal TowerService to handle requests Signed-off-by: Alexandru Vasile <[email protected]> * Fix middleware typo Signed-off-by: Alexandru Vasile <[email protected]> * http-server: Improve API builder for tower service Signed-off-by: Alexandru Vasile <[email protected]> * Rename the inner service data and check comments Signed-off-by: Alexandru Vasile <[email protected]> * examples: Add comments Signed-off-by: Alexandru Vasile <[email protected]> * http-server: Receive tower service builder as param Signed-off-by: Alexandru Vasile <[email protected]> * examples: Adjust tower_http example Signed-off-by: Alexandru Vasile <[email protected]> * http-server: Add tower middleware on the HttpBuilder Signed-off-by: Alexandru Vasile <[email protected]> * http-server: Do not expose the internal `TowerService` for now Signed-off-by: Alexandru Vasile <[email protected]> * Update http-server/src/server.rs Co-authored-by: Niklas Adolfsson <[email protected]> * http-server: Use `std::error::Error` Signed-off-by: Alexandru Vasile <[email protected]> * Fix fmt Signed-off-by: Alexandru Vasile <[email protected]> * http-server: Remove header and CORS validation Signed-off-by: Alexandru Vasile <[email protected]> * core: Remove CORS logic Signed-off-by: Alexandru Vasile <[email protected]> * examples: Add custom CORS layer to the RPC Signed-off-by: Alexandru Vasile <[email protected]> * address some grumbles * fix more grumbles: no more Infallible * make clippy happy * Rename tower http example Signed-off-by: Alexandru Vasile <[email protected]> * http-server: Remove handling of OPTIONS request Signed-off-by: Alexandru Vasile <[email protected]> * tests: Test CORS with external layers Signed-off-by: Alexandru Vasile <[email protected]> * examples: Document access control and external CORS layer Signed-off-by: Alexandru Vasile <[email protected]> * Remove unused deps Signed-off-by: Alexandru Vasile <[email protected]> * remove unused CORS code * Remove extra lifetime param Signed-off-by: Alexandru Vasile <[email protected]> * Rename `invalid_allow_origin` to `origin_rejected` Signed-off-by: Alexandru Vasile <[email protected]> * Fix clippy Signed-off-by: Alexandru Vasile <[email protected]> * Update core/src/server/access_control/origin.rs Co-authored-by: Niklas Adolfsson <[email protected]> * Rename `AnyNonNull` to `Wildcard` Signed-off-by: Alexandru Vasile <[email protected]> * Rename `OriginType` to `Origin` Signed-off-by: Alexandru Vasile <[email protected]> Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: Niklas Adolfsson <[email protected]>
-
- Aug 12, 2022
-
-
Niklas Adolfsson authored
* fix(client): adjust TransportSenderT This is trait contains `WebSocket` specific details and it's difficult to fix it properly with an extension trait in the current design. So this PR documents and marks it clearly that these methods are optional to implement, kind of ugly but better. * fix build * Update core/src/client/mod.rs Co-authored-by: Alexandru Vasile <[email protected]> * Update core/src/client/mod.rs Co-authored-by: Alexandru Vasile <[email protected]> * increase margin for failing test * Update core/src/client/mod.rs Co-authored-by: James Wilson <[email protected]> * remove optional prefix in trait Co-authored-by: Alexandru Vasile <[email protected]> Co-authored-by: James Wilson <[email protected]>
-
- Aug 11, 2022
-
-
Alexandru Vasile authored
* Fix cargo clippy Signed-off-by: Alexandru Vasile <[email protected]> * ci: Deny clippy warning Signed-off-by: Alexandru Vasile <[email protected]> * Replace clippy by `clippy-check` Signed-off-by: Alexandru Vasile <[email protected]>
-
- Aug 04, 2022
-
-
Alexandru Vasile authored
* Rename Middleware to Metrics Signed-off-by: Alexandru Vasile <[email protected]> * Change documentation to reflect the `Metrics` trait Signed-off-by: Alexandru Vasile <[email protected]> * Middleware name refactoring Signed-off-by: Alexandru Vasile <[email protected]> * Http middleware renaming Signed-off-by: Alexandru Vasile <[email protected]> * Rename examples Signed-off-by: Alexandru Vasile <[email protected]> * Update http-server/src/server.rs Co-authored-by: James Wilson <[email protected]> * http: Use `request` instead of `HeaderMap` for logging Signed-off-by: Alexandru Vasile <[email protected]> * Rename `Metrics` -> `Logger` Signed-off-by: Alexandru Vasile <[email protected]> * Fix cargo clippy Signed-off-by: Alexandru Vasile <[email protected]> * Fix examples Signed-off-by: Alexandru Vasile <[email protected]> * Fix tests Signed-off-by: Alexandru Vasile <[email protected]> * Fix cargo fmt Signed-off-by: Alexandru Vasile <[email protected]> * Fix hyper dependency Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: James Wilson <[email protected]>
-
- Aug 03, 2022
-
-
Niklas Adolfsson authored
Closing https://github.com/paritytech/jsonrpsee/issues/838
-
- Jul 20, 2022
-
-
Niklas Adolfsson authored
-
- Jul 06, 2022
-
-
Niklas Adolfsson authored
* WIP: refactoring * refactor http server * fix tests * Delete TODO.txt * fix tests again * add benches/src/lib.rs * remove bench changes; fast less deps * no more env_logger * update examples * ws server; expose headers in middleware * add back uncommented code * fix nits * make the code more readable * add back the tracing stuff * simplify code but one extra clone * fix tests again * revert async accept API * fix nits * different traits for WS and HTTP middleware * fix tests * revert benchmark change * Update core/src/server/helpers.rs * Update ws-server/Cargo.toml * add limit to batch responses as well * pre-allocate string for batches * small refactor
-
- Jun 29, 2022
-
-
Alexandru Vasile authored
* subscription: Allow errors in subscription callbacks Signed-off-by: Alexandru Vasile <[email protected]> * subscription: Remove the need to own the error Signed-off-by: Alexandru Vasile <[email protected]> * error: Build `ErrorObject` from `CallError` for improved ergonomics Signed-off-by: Alexandru Vasile <[email protected]> * Update examples for the new subscription API Signed-off-by: Alexandru Vasile <[email protected]> * Add alias for subscription result Signed-off-by: Alexandru Vasile <[email protected]> * macros: Render server subscription method with `ResultSubscription` Signed-off-by: Alexandru Vasile <[email protected]> * Port `proc_macro` example to new API Signed-off-by: Alexandru Vasile <[email protected]> * Rename `ResultSubscription` to `ReturnTypeSubscription` to avoid confusion Signed-off-by: Alexandru Vasile <[email protected]> * Port all tests to new subscription API Signed-off-by: Alexandru Vasile <[email protected]> * Update documentation Signed-off-by: Alexandru Vasile <[email protected]> * Port benches Signed-off-by: Alexandru Vasile <[email protected]> * Replace tabs with spaces & add documentation Signed-off-by: Alexandru Vasile <[email protected]> * Add dummy error for subscriptions Signed-off-by: Alexandru Vasile <[email protected]> * Implement `From` for `SubscriptionError` Signed-off-by: Alexandru Vasile <[email protected]> * Return `SubscriptionError` when parsing params Signed-off-by: Alexandru Vasile <[email protected]> * Rename `SubscriptionError` to `SubscriptionEmptyError` Signed-off-by: Alexandru Vasile <[email protected]> * Change `accept` signature Signed-off-by: Alexandru Vasile <[email protected]> * Port tests to new `accept` api Signed-off-by: Alexandru Vasile <[email protected]> * Implement `pipe_from_try_stream` and `pipe_from_stream` for `PendingSubscription` Signed-off-by: Alexandru Vasile <[email protected]> * Modify examples to ilustrate new API Signed-off-by: Alexandru Vasile <[email protected]> * Fix docs tests Signed-off-by: Alexandru Vasile <[email protected]> * Rename previously `SubscriptionResult` -> `InnerSubscriptionResult` Signed-off-by: Alexandru Vasile <[email protected]> * Rename `ReturnTypeSubscription` -> `SubscriptionResult` Signed-off-by: Alexandru Vasile <[email protected]> * Remove documentation line Signed-off-by: Alexandru Vasile <[email protected]> * Implement `PipeFromStreamResult` Signed-off-by: Alexandru Vasile <[email protected]> * Add comment for empty error Signed-off-by: Alexandru Vasile <[email protected]> * Update proc-macros/src/lib.rs Co-authored-by: Niklas Adolfsson <[email protected]> * Update proc-macros/src/lib.rs Co-authored-by: Niklas Adolfsson <[email protected]> * Update proc-macros/src/lib.rs Co-authored-by: Niklas Adolfsson <[email protected]> * Change `ReturnTypeSubscription` -> `SubscriptionResult` Signed-off-by: Alexandru Vasile <[email protected]> * Add `ResultConsumed` for `PipeFromStreamResult` Signed-off-by: Alexandru Vasile <[email protected]> * Update examples to use `PipeFromStreamResult` Signed-off-by: Alexandru Vasile <[email protected]> * Replace ConsumedResult with Options Signed-off-by: Alexandru Vasile <[email protected]> * Log warning when subscription callback fails Signed-off-by: Alexandru Vasile <[email protected]> * Change ubuntu test names Signed-off-by: Alexandru Vasile <[email protected]> * server: Make `pipe` methods of `SubscriptionSink` private Signed-off-by: Alexandru Vasile <[email protected]> * server: Remove `pipe_from_stream` method of `SubscriptionSink` Signed-off-by: Alexandru Vasile <[email protected]> * server: Update PipeFromStreamResult documentation Signed-off-by: Alexandru Vasile <[email protected]> * Adjust tests to `SubscriptionSink::pipe_from_stream` private interface Signed-off-by: Alexandru Vasile <[email protected]> * Add `accept-reject` API on `SubscriptionSink` Signed-off-by: Alexandru Vasile <[email protected]> * Make `pipe_from_try_stream` public Signed-off-by: Alexandru Vasile <[email protected]> * Maybe accept the subscription Signed-off-by: Alexandru Vasile <[email protected]> * Revert "server: Remove `pipe_from_stream` method of `SubscriptionSink`" This reverts commit d3c3ce9c . * Make `unsubscribe` channel optional on accepting the connection Signed-off-by: Alexandru Vasile <[email protected]> * Pass `SubscriptionSink` to subscription callbacks Signed-off-by: Alexandru Vasile <[email protected]> * Implement subscription sink state Signed-off-by: Alexandru Vasile <[email protected]> * Submit `InvalidParams` if sink was never accepted Signed-off-by: Alexandru Vasile <[email protected]> * Handle rejected sinks Signed-off-by: Alexandru Vasile <[email protected]> * Remove `PendingSubscription` Signed-off-by: Alexandru Vasile <[email protected]> * Fix doc tests Signed-off-by: Alexandru Vasile <[email protected]> * macro: Make subscription sink mutable Signed-off-by: Alexandru Vasile <[email protected]> * Fix tests and examples Signed-off-by: Alexandru Vasile <[email protected]> * macro: Return `sink.reject()` result Signed-off-by: Alexandru Vasile <[email protected]> * tests: Add test for `SubscriptionSinkState` Signed-off-by: Alexandru Vasile <[email protected]> * Test internal subscription sink state Signed-off-by: Alexandru Vasile <[email protected]> * Fix `send_error` to not always return `false` Signed-off-by: Alexandru Vasile <[email protected]> * Fix benches Signed-off-by: Alexandru Vasile <[email protected]> * Remove `PipeFromStreamResult` Signed-off-by: Alexandru Vasile <[email protected]> * Use valid Json-RPC return code for test errors Signed-off-by: Alexandru Vasile <[email protected]> * Remove `SubscriptionSinkState`" * Remodel state machine using `Option`s for `SubscriptionSink`s Signed-off-by: Alexandru Vasile <[email protected]> * tests: Double accept / reject API for `SubscriptionSink` Signed-off-by: Alexandru Vasile <[email protected]> * Implement `SubscriptionAcceptRejectError` for error propagation Signed-off-by: Alexandru Vasile <[email protected]> * Remove `maybe_accept` wrapper Signed-off-by: Alexandru Vasile <[email protected]> * Update comments and documentation Signed-off-by: Alexandru Vasile <[email protected]> * Update core/src/server/rpc_module.rs Co-authored-by: Niklas Adolfsson <[email protected]> * Update core/src/server/rpc_module.rs Co-authored-by: Niklas Adolfsson <[email protected]> * rpc_server: Add type alias for unsubscription calls Signed-off-by: Alexandru Vasile <[email protected]> * rpc_server: Improve comment regarding dropped error Signed-off-by: Alexandru Vasile <[email protected]> * style: Single line return errors Signed-off-by: Alexandru Vasile <[email protected]> * Make comment more verbose Co-authored-by: Niklas Adolfsson <[email protected]> Co-authored-by: James Wilson <[email protected]>
-
- Jun 21, 2022
-
-
Niklas Adolfsson authored
* feat(clients): add explicit unsubscribe API * add tests for unsubscribe * rephrase bad english
-
- Jun 14, 2022
-
-
Alexandru Vasile authored
* ws-server: Fix copyright for tests Signed-off-by: Alexandru Vasile <[email protected]> * rpc_module: Return a resource builder when subscribing Registering a subscription returns the subscription' callback wrapped into a `MethodResourcesBuilder` for resource limiting purposes. Signed-off-by: Alexandru Vasile <[email protected]> * tests: Fix `register_subscription` tests Signed-off-by: Alexandru Vasile <[email protected]> * server: Drop `ResourceGuard` with `SubscriptionSink` for resource limit Signed-off-by: Alexandru Vasile <[email protected]> * tests: Check resource limits for subscription Signed-off-by: Alexandru Vasile <[email protected]> * proc-macros: Render resource limits for subscription macro Signed-off-by: Alexandru Vasile <[email protected]> * tests: Extend subscription limiting test via macro generation Signed-off-by: Alexandru Vasile <[email protected]> * core: Check if the `unsubscribe` method was already inserted Signed-off-by: Alexandru Vasile <[email protected]> * tests: Fix unsupported fields for subscriptions Signed-off-by: Alexandru Vasile <[email protected]> * server: Verify subscription methods before registering them Signed-off-by: Alexandru Vasile <[email protected]> * Update test comment for subscription limiting Signed-off-by: Alexandru Vasile <[email protected]> * Modify tests comments Signed-off-by: Alexandru Vasile <[email protected]>
-
- Jun 13, 2022
-
-
Niklas Adolfsson authored
* fix(servers): more descriptive errors calls fail Closing #775 * fix tests * rename constants * address grumbles
-
Niklas Adolfsson authored
* initial rewrite to re-use HTTP access control * clean things up * Update core/src/error.rs * Update core/src/error.rs * allow origin: add back removed Display impl * cleanup again * Update http-server/src/lib.rs * Update examples/examples/cors_server.rs * Update core/src/server/access_control/mod.rs Co-authored-by: Tarik Gul <[email protected]> * Update http-server/src/server.rs Co-authored-by: Tarik Gul <[email protected]> * fix bad comment * remove todo * fix grumbles * more grumbles * rename and document a bit * remove `Access-Control-Allow-Origin` in whitelist * fix nit: pub(super) * fix bad naming Co-authored-by: Tarik Gul <[email protected]>
-
Niklas Adolfsson authored
-
- Jun 01, 2022
-
-
Niklas Adolfsson authored
* fix(http server): omit jsonrpc details health API Closing https://github.com/paritytech/jsonrpsee/issues/784 Ordinary GET requests doesn't expect the body the be formatted as `JSON-RPC` responses which this fixes. * address grumbles * Update http-server/src/server.rs * cargo fmt
-
- May 11, 2022
-
-
Niklas Adolfsson authored
* feat: add http health API * Update http-server/src/server.rs * remove needless change * fix middleware nits
-
- May 03, 2022
-
-
Niklas Adolfsson authored
* feat: limit the number of subscriptions Closing #729 * fix nit * Update core/src/server/helpers.rs * add integration tests + some fixes so it works * cargo fmt * fix doc links * Unsubscribe calls should avoid subscription limits Point to Tokio 1.16 (we use a method from it), and a little special treatment for unsubscribe methods * No resource limiting for Unsubscribe calls * Test that we can still unsubscribe after hitting a limit * Fix a comment typo Co-authored-by: Alexandru Vasile <[email protected]> * Update core/src/server/rpc_module.rs * Update core/src/server/rpc_module.rs Co-authored-by: James Wilson <[email protected]> Co-authored-by: Alexandru Vasile <[email protected]>
-
Niklas Adolfsson authored
* fix: use https conn for https * enable integration tests for https and wss * remove socket options of http client
-
- Apr 29, 2022
-
-
Niklas Adolfsson authored
fix(rpc module): close subscription task when a subscription is `unsubscribed` via the `unsubscribe call` (#743) * refactor: remove SubscriptionSink::inner_send * fix: close running task if unsubscribed * Update core/src/server/rpc_module.rs * Update core/src/server/rpc_module.rs * fix nits * Update core/src/server/rpc_module.rs * add test for canceling subscriptions * print subscription info; once per minute * revert closure stuff * Revert "print subscription info; once per minute" This reverts commit 366176a8 . * use tokio::sync::watch instead of oneshot The receiver is clonable and it's possible to check whether the sender is still alive * Update tests/tests/helpers.rs Co-authored-by: David <[email protected]> * Update core/src/server/rpc_module.rs Co-authored-by: David <[email protected]> * grumbles: use unwrap in tests * add test for reuse pipe_from_stream Co-authored-by: David <[email protected]>
-
- Apr 20, 2022
-
-
Niklas Adolfsson authored
* fix(rpc module): fail subscription with bad params * draft; show my point * fix tests * fix build * add tests for proc macros too * add tests for bad params in proc macros * fix nits * commit all files * add ugly fix for proc macro code * add more user friendly API * make SubscriptionSink::close take mut self * fix grumbles * show james some code * Update core/src/server/rpc_module.rs Co-authored-by: James Wilson <[email protected]> * remove needless clone * fix build * client fix docs + error type * simplify code: merge connect reset and unsubscribe close reason * remove unknown close reason * refactor: remove Error::SubscriptionClosed * add some nice APIs to ErrorObjectOwned * unify api * address grumbles * remove redundant methods for close and reject * proc macro: compile err when subscription -> Result * rpc module: fix test subscription test * Update core/src/server/rpc_module.rs Co-authored-by: James Wilson <[email protected]> * Update core/src/server/rpc_module.rs Co-authored-by: James Wilson <[email protected]> * Update core/src/server/rpc_module.rs Co-authored-by: James Wilson <[email protected]> * Update core/src/server/rpc_module.rs Co-authored-by: James Wilson <[email protected]> * Update core/src/server/rpc_module.rs Co-authored-by: James Wilson <[email protected]> * Update proc-macros/src/lib.rs Co-authored-by: James Wilson <[email protected]> * address grumbles * remove faulty comment * Update core/src/server/rpc_module.rs Co-authored-by: David <[email protected]> * Update core/src/server/rpc_module.rs Co-authored-by: David <[email protected]> * Update core/src/server/rpc_module.rs Co-authored-by: David <[email protected]> * Update core/src/server/rpc_module.rs Co-authored-by: David <[email protected]> * Update core/src/server/rpc_module.rs Co-authored-by: David <[email protected]> * fix: don't send `RPC Call failed: error`. * remove debug assert Co-authored-by: James Wilson <[email protected]> Co-authored-by: David <[email protected]>
-
- Apr 05, 2022
-
-
Niklas Adolfsson authored
* fix(ws server): close all subscriptions * fix test * better comment and longer period * revert unintentional change
-
- Apr 01, 2022
-
-
Niklas Adolfsson authored
* unify servers; use tokio::TcpListener * add API to build server from tcp socket * build_from_tcp nit: not async * fix nits * change `build_from_tcp` force users configure hyper The hyper settings might contradict to settings on the provided socket, force users of this API to configure that avoid confusion and unexpected settings. * Update http-server/src/server.rs * fix doc links * add separate APIs `build_from_tcp` and `build_from_hyper` * fix clippy * remove dead code * fix build * fix nit in example code
-
Niklas Adolfsson authored
* fix(client): close subscription when server sent `SubscriptionClosed` notification * Update core/src/client/async_client/helpers.rs
-
Niklas Adolfsson authored
* refactor: make `pipe_from_stream` take stream of result The rationale for this is that it is more flexible for use cases when `Stream<Item = Result<T, Error>>`. Take for example `tokio_stream::Broadcast` then one would have to something like: ```rust let stream = BroadcastStream::new(rx).take_while(|r| future::ready(r.is_ok())).filter_map(|r| future::ready(r.ok())); ``` Of course it's a bit awkward to return `Result` when the underlying stream can't fail but I think that's fair trade-off here. * Update core/src/server/rpc_module.rs Co-authored-by: Tarik Gul <[email protected]> * pipe_from_stream: make E: Display instead of StdError * add a test * add `pipe_from_try_stream` API to support `TryStream` * Update tests/tests/integration_tests.rs * Update proc-macros/src/lib.rs Co-authored-by: Tarik Gul <[email protected]>
-
- Mar 30, 2022
-
-
Niklas Adolfsson authored
* refactor: get rid off `Error::Request` variant * fix nit * to_owned -> to_call_error
-
- Mar 09, 2022
-
-
David authored
* wip wip wip Use tokio::sync::Notify to signal to the server when a subscriber has gone away without calling unsubscribe * Cleanup * Fmt * More cleanup more TODOs * fmt * Address a few todos * Update core/src/server/rpc_module.rs Co-authored-by: Niklas Adolfsson <[email protected]> * Update ws-server/src/server.rs Co-authored-by: Niklas Adolfsson <[email protected]> * Fix bad merge * Test * fmt * fix test * Finish test * Cleanup Add a second subscription to serverless test * Update tests/tests/integration_tests.rs Co-authored-by: Niklas Adolfsson <[email protected]> * simplify test * Review feedback: avoid allocations * cleanup * Remove async-channel * remove async-channel deps Co-authored-by: Niklas Adolfsson <[email protected]>
-
- Feb 18, 2022
-
-
Niklas Adolfsson authored
* [proc macros]: only generate unsub if not provided * Update proc-macros/src/rpc_macro.rs Co-authored-by: David <[email protected]> * Update proc-macros/src/lib.rs Co-authored-by: David <[email protected]> * fix grumbles * Update proc-macros/src/lib.rs Co-authored-by: David <[email protected]> * Update proc-macros/src/lib.rs Co-authored-by: David <[email protected]> * Update proc-macros/src/lib.rs Co-authored-by: David <[email protected]> * Update proc-macros/tests/ui/correct/alias_doesnt_use_namespace.rs Co-authored-by: David <[email protected]> Co-authored-by: David <[email protected]>
-
- Jan 21, 2022
-
-
Niklas Adolfsson authored
* feat(client): support request id as Strings. * add tests for Id::String * address grumbles: move id_kind to RequestManager * Update client/http-client/src/client.rs * types: take ref to `ID` get rid of some `Clone` * remove more clone * grumbles: rename tests
-
David authored
Add a method to RpcModule that transforms the module into a `RpcModule<()>`, i.e. removes the context. (#660) * Add a method to RpcModule, `decontextualize`, that transforms the module into a `RpcModule<()>`, i.e. removes the context. * Merging a module with an empty module cannot fail * fmt * Address grumbles * Cleanup macro * Update core/src/server/rpc_module.rs Co-authored-by: Maciej Hirsz <[email protected]> Co-authored-by: Maciej Hirsz <[email protected]>
-
Niklas Adolfsson authored
* feat(rpc module): add_stream to subscription sink * fix some nits * unify parameters to rpc methods * Update core/src/server/rpc_module.rs * Update tests/tests/integration_tests.rs Co-authored-by: David <[email protected]> * address grumbles * fix subscription tests * new type for `SubscriptionCallback` and glue code * remove unsed code * remove todo * add missing feature tokio/macros * make `add_stream` cancel-safe * rename add_stream and return status * fix nits * rename stream API -> streamify * Update core/src/server/rpc_module.rs * provide proper close reason * spelling * consume_and_streamify + docs * fmt * rename API pipe_from_stream * improve logging; indicate which subscription method that failed Co-authored-by: David <[email protected]>
-
- Jan 05, 2022
-
-
Niklas Adolfsson authored
* fix(http server): handle post and option requests. * Update http-server/src/response.rs * fmt * grumbles: validate CORS before checking method kind * revert unintentional change * Add A few tests around CORS and http method/header acceptance * Tweak the CORS test * return appropriate headers for CORS preflight response * cargo fmt * jsonrpc, not jsonrpsee in test requests * don't test OPTIONS method in unsupported_methods test as it has different expectations * Update tests/tests/integration_tests.rs * Update tests/tests/integration_tests.rs * Update tests/tests/integration_tests.rs * Update tests/tests/integration_tests.rs * Add an example to test CORS in browser, and a couple of fixes to CORS handling * cargo fmt * Update examples/cors_server.rs Co-authored-by: James Wilson <[email protected]>
-
- Dec 21, 2021
-
-
Niklas Adolfsson authored
* PoC * introduce IdProvider trait * revert Cow stuff * Update ws-server/src/server.rs * fix tests * cargo fmt * use 'static lifetime in SubscriptionId * fix tests * fmt * make tests compile again * fix tests * Fix tests * Move IdProvider impls to own module * move `sub-id gen` types to `core` * fix doc links * make rand non-optional dep * feature gate: id provider Co-authored-by: David Palm <[email protected]>
-
- Dec 20, 2021
-
-
Niklas Adolfsson authored
* extract ws client to async client * bring back jsonrpsee-ws-client crate * new crate core client * add missing file * jsonrpsee crate: add core client * rexport core client * more re-exports * downgrade trait bounds * update version * fix nits * send close reason * Update types/src/traits.rs * move 'TEN_MB_CONST' to core * Update client/core-client/Cargo.toml Co-authored-by: David <[email protected]> * Update client/core-client/src/lib.rs Co-authored-by: David <[email protected]> * cargo fmt * Update client/ws-client/src/lib.rs Co-authored-by: David <[email protected]> * Update client/ws-client/src/lib.rs Co-authored-by: David <[email protected]> * move `async-client` core The `async-client` is hidden behind a new feature flag `async-client` because it brings in additional dependecies such as tokio rt. * fix docs * add example how to use "core client" * fix build * Update http-server/Cargo.toml * Update client/transport/Cargo.toml Co-authored-by: David <[email protected]>
-
- Dec 17, 2021
-
-
Maciej Hirsz authored
* Nuke V2 * fmt * Formatting and imports * Updated benches * Fix doc comment link * Brace imports in ws-server * Reworking imports * std first * fmt * std on top * Update to match changed line numbers * Rename jsonrpsee_utils -> jsonrpsee_core * Migrating things types -> core * RpcError -> ErrorResponse * Merge types::client into core::client * Continued move types -> core * Removing features to make checks pass * Move rpc_module tests to tests crate * Fixed doc comment links * Add futures-util dependency for client * Remove dead code Co-authored-by: Niklas Adolfsson <[email protected]> * fmt * Feature gate the Client trait * Move `Client` traits to `client` module Co-authored-by: Niklas Adolfsson <[email protected]>
-
- Dec 15, 2021
-
-
Niklas Adolfsson authored
* refactor `SubscriptionClosed` I noticed that we "trying" to sending "close messages" on subscriptions that already has been terminated by the client which is unnecessary. Moreover, this introduces `fn is_closed` to check whether a given channel is closed without having to send an actual message on the channel. * cargo fmt * Update types/src/error.rs Co-authored-by: David <[email protected]> * fix nits * more grumbles * make rust stable happy * SubscriptionClosed: add deny unknown fields Co-authored-by: David <[email protected]>
-
- Dec 10, 2021
-
-
Niklas Adolfsson authored
* rpc module: refactor calls/subs without a server * Update utils/src/server/rpc_module.rs * Update utils/src/server/rpc_module.rs * Update utils/src/server/rpc_module.rs * rpc module: add raw_json_requests + rename test_subscribe * Update utils/src/server/rpc_module.rs Co-authored-by: David <[email protected]> * add rustdoc examples * fix tabs * no more tabs in docs * address grumbles * Update utils/src/server/rpc_module.rs Co-authored-by: David <[email protected]>
-
James Wilson authored
* get the tests passing * cargo fmt * tweak comment wording * point to StreamExt in the next() method impl just so that people know to import it if desired * ignore clippy lint on next() Iterator-like method * Fix an example * actually, unwrap instead of transpose
-
- Dec 06, 2021
-
-
Niklas Adolfsson authored
* clients: introduce tls feature flag * Update tests/tests/integration_tests.rs * fix: don't rebuild tls connector of every connect * fix tests + remove url dep * fix tests again
-