- Oct 13, 2022
-
-
Alexandru Vasile authored
* server: Expose the subscription ID Signed-off-by: Alexandru Vasile <[email protected]> * tests: Check subscription ID is exposed correctly Signed-off-by: Alexandru Vasile <[email protected]> * server: Dedicated method for exposing the sub ID Signed-off-by: Alexandru Vasile <[email protected]> * Fix clippy Signed-off-by: Alexandru Vasile <[email protected]> Signed-off-by: Alexandru Vasile <[email protected]>
-
- Sep 13, 2022
-
-
Niklas Adolfsson authored
* ws server: support both http and ws * clean things up * ws server: add http logger and ws logger * more cleanup * fix nits * middleware example * remove http and ws server crates * move things around * some minor fixes * fix stop in http context * fix tests * fix features * use header constants * remove access_control & expose only host filtering CORS has been removed to tower middleware and doesn't need to supported anymore * fix merge logging traits + move to server * supress warnings faulty dead code * remove unwrap * support http2 * doesnt work * feat: simpler stop handling * Update server/src/future.rs * some cleanup * Update server/src/future.rs Co-authored-by: Alexandru Vasile <[email protected]> * Update server/src/future.rs Co-authored-by: Alexandru Vasile <[email protected]> * fix nits * address grumbles * commit examples and nits * clarify comment * remove noise * remove impl Future for ServerHandle * remove needless async {} * add http2 test * add ServerBuilder::build_from_tcp * fix super nit: no more Option<SocketAddr> * fix Option<SocketAddr> * Update server/src/future.rs Co-authored-by: Alexandru Vasile <[email protected]> * Update server/src/future.rs Co-authored-by: Alexandru Vasile <[email protected]> Co-authored-by: Alexandru Vasile <[email protected]>
-
- Sep 06, 2022
-
-
Alexandru Vasile authored
* core: Fix doc typo Signed-off-by: Alexandru Vasile <[email protected]> * types: Implement generic `ParamBuilder` for RPC parameters Signed-off-by: Alexandru Vasile <[email protected]> * types: Add specialized RPC parameter builder for arrays and maps Signed-off-by: Alexandru Vasile <[email protected]> * types: Implement parameter builder for batch requests Signed-off-by: Alexandru Vasile <[email protected]> * types: Implement `rpc_params` in the `types` crate Signed-off-by: Alexandru Vasile <[email protected]> * core: Adjust `ClientT` for generic efficient parameters Signed-off-by: Alexandru Vasile <[email protected]> * proc-macro: Render clients using the parameter builders Signed-off-by: Alexandru Vasile <[email protected]> * Adjust testing to the `ToRpcParams` interface Signed-off-by: Alexandru Vasile <[email protected]> * core: Move `rpc_params` to core and simplify testing Signed-off-by: Alexandru Vasile <[email protected]> * core: Rename server's trait to `ToRpcServerParams` Signed-off-by: Alexandru Vasile <[email protected]> * bench: Adjust benches to the `ToRpcParams` interface Signed-off-by: Alexandru Vasile <[email protected]> * Fix clippy Signed-off-by: Alexandru Vasile <[email protected]> * types: Rename batch builder to `BatchRequestBuilder` Signed-off-by: Alexandru Vasile <[email protected]> * examples: Re-enable proc-macro example Signed-off-by: Alexandru Vasile <[email protected]> * types: Fix doc tests and add panic documentation Signed-off-by: Alexandru Vasile <[email protected]> * core: Fix documentation link Signed-off-by: Alexandru Vasile <[email protected]> * client: Use BatchRequestBuilder as parameter for batch requests 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]> * types: Add specialized constructors for internal `ParamsBuilder` Signed-off-by: Alexandru Vasile <[email protected]> * types: Implement `EmptyParams` for client's parameters Signed-off-by: Alexandru Vasile <[email protected]> * tests: Fix macos disabled test Signed-off-by: Alexandru Vasile <[email protected]> * types: Improve comment Signed-off-by: Alexandru Vasile <[email protected]> * Fix clippy Signed-off-by: Alexandru Vasile <[email protected]> * benches: Rename functions Signed-off-by: Alexandru Vasile <[email protected]> * types: Rename param types to `ArrayParams` and `ObjectParams` Signed-off-by: Alexandru Vasile <[email protected]> * Move paramters to core crate Signed-off-by: Alexandru Vasile <[email protected]> * core: Return `core::Error` from `ToRpcParams` trait Signed-off-by: Alexandru Vasile <[email protected]> * Fix doc link Signed-off-by: Alexandru Vasile <[email protected]> * Fix `ArrayParamsBuilder` doc links Signed-off-by: Alexandru Vasile <[email protected]> * Remove `ToRpcServerParams` trait Signed-off-by: Alexandru Vasile <[email protected]> * core: Fix `ToRpcParams` docs Signed-off-by: Alexandru Vasile <[email protected]> * Remove `ParamsSer` and extend benchmarking Signed-off-by: Alexandru Vasile <[email protected]> * core: Optimise `rpc_params` to avoid allocation on error Signed-off-by: Alexandru Vasile <[email protected]> * params: zero allocation for empty params Signed-off-by: Alexandru Vasile <[email protected]> * examples: Add copyright back Signed-off-by: Alexandru Vasile <[email protected]> * traits: Remove empty doc line Signed-off-by: Alexandru Vasile <[email protected]> * Update core/src/traits.rs Co-authored-by: James Wilson <[email protected]> * Update core/src/traits.rs Co-authored-by: James Wilson <[email protected]> * examples: Restore `proc_macro` example to origin/master Signed-off-by: Alexandru Vasile <[email protected]> * core: Remove empty case for `rpc_params` macro Signed-off-by: Alexandru Vasile <[email protected]> Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: Niklas Adolfsson <[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 03, 2022
-
-
Niklas Adolfsson authored
Closing https://github.com/paritytech/jsonrpsee/issues/838
-
- 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 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
-
- 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]>
-
- 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]>
-
- Jan 21, 2022
-
-
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]>
-
- 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 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]>
-