- Oct 13, 2022
-
-
Alexandru Vasile authored
Signed-off-by: Alexandru Vasile <[email protected]> Signed-off-by: Alexandru Vasile <[email protected]>
-
- Sep 30, 2022
-
-
Niklas Adolfsson authored
-
- Sep 16, 2022
-
-
Niklas Adolfsson authored
* tracing: use instrument macro * fix merge nit * cargo fmt * tracing span in TRACE only * Update core/src/client/async_client/mod.rs * get rid of tracing-futures * less noise for subscription spans * nits: replace spaces with tabs
-
- 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 24, 2022
-
-
Alexandru Vasile authored
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 29, 2022
-
-
Patrick Kuo authored
* add id to tracing span * Revert "add id to tracing span" This reverts commit 5e01e6be. * Avoid using Span::enter() in async functions, following tracing's doc instruction https://docs.rs/tracing/latest/tracing/struct.Span.html#in-asynchronous-code * * fixed all Span::enter() * clean up * fix fmt * changed RpcTracing::span -> into_span instead of cloning the span
-
- Jul 20, 2022
-
-
Niklas Adolfsson authored
-
- Jul 06, 2022
-
-
Niklas Adolfsson authored
-
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
-
Niklas Adolfsson authored
* less verbose logging + tracing based on method name * add tracing per rpc call * fix nits * remove unsed feature * fix build * http make logging more human friendly * unify logging format * deps: make tracing hard dependency * fix tests * fix nit * fix build * fix nits * Update core/src/client/async_client/mod.rs * Update core/Cargo.toml * Update core/src/lib.rs
-
- 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
-
-
Alexandru Vasile authored
* ws: Implement ping for `TransportSenderT` trait Signed-off-by: Alexandru Vasile <[email protected]> * ws/client: Receive pong frames Signed-off-by: Alexandru Vasile <[email protected]> * core/client: Use `select!` macro for the background task Signed-off-by: Alexandru Vasile <[email protected]> * client: Propagate ping interval to background task Signed-off-by: Alexandru Vasile <[email protected]> * async_client: Submit ping requests Signed-off-by: Alexandru Vasile <[email protected]> * async_client: Handle pong replies Signed-off-by: Alexandru Vasile <[email protected]> * client: Handle frontend messages to dedicated fn Signed-off-by: Alexandru Vasile <[email protected]> * client: Handle backend messages in dedicated fn Signed-off-by: Alexandru Vasile <[email protected]> * client: Add terminated fuse for opt-out pings Signed-off-by: Alexandru Vasile <[email protected]> * Set opt-out behavior for client pings Signed-off-by: Alexandru Vasile <[email protected]> * client: Move imports Signed-off-by: Alexandru Vasile <[email protected]> * client: Handle handle_frontend_messages errors Signed-off-by: Alexandru Vasile <[email protected]> * client: Add custom error related to byteslice conversions Signed-off-by: Alexandru Vasile <[email protected]> * client: Modify `send_ping` to send empty slices Signed-off-by: Alexandru Vasile <[email protected]> * Fix `cargo hack check` and use `select_biased` Signed-off-by: Alexandru Vasile <[email protected]> * Handle sending pings with lowest priority Signed-off-by: Alexandru Vasile <[email protected]> * core: Add proper number of params to `background_task` Signed-off-by: Alexandru Vasile <[email protected]> * Fix wasm client Signed-off-by: Alexandru Vasile <[email protected]> * Handle raw bytes and string received messages Signed-off-by: Alexandru Vasile <[email protected]> * Fix Cargo.toml feature Signed-off-by: Alexandru Vasile <[email protected]> * Panic when empty slice does not fit into `ByteSlice125` Signed-off-by: Alexandru Vasile <[email protected]> * wasm: Add operation not supported for pings Signed-off-by: Alexandru Vasile <[email protected]> * Rename `ReceivedMessage` from Data to Text Signed-off-by: Alexandru Vasile <[email protected]> * Rename test variable Signed-off-by: Alexandru Vasile <[email protected]> * Add documentation Signed-off-by: Alexandru Vasile <[email protected]> * client: Use `future::select` for cancel safety Signed-off-by: Alexandru Vasile <[email protected]> * client: Remove `pong` handling logic Signed-off-by: Alexandru Vasile <[email protected]> * client: Update ping documentation Signed-off-by: Alexandru Vasile <[email protected]> * Update core/src/client/async_client/mod.rs Co-authored-by: Tarik Gul <[email protected]> * Update core/src/client/async_client/mod.rs Co-authored-by: Tarik Gul <[email protected]> * Update core/src/client/async_client/mod.rs Co-authored-by: Tarik Gul <[email protected]> * Update core/src/client/async_client/mod.rs Co-authored-by: Tarik Gul <[email protected]> * Update core/src/client/async_client/mod.rs Co-authored-by: Tarik Gul <[email protected]> * Update core/Cargo.toml Co-authored-by: Niklas Adolfsson <[email protected]> * Update core/Cargo.toml Co-authored-by: Niklas Adolfsson <[email protected]> * logs: Keep debug log for submitting `Ping` frames Signed-off-by: Alexandru Vasile <[email protected]> * Print debug logs when receiving `Pong` frames Signed-off-by: Alexandru Vasile <[email protected]> * Update core/src/client/async_client/mod.rs Co-authored-by: Tarik Gul <[email protected]> Co-authored-by: Niklas Adolfsson <[email protected]>
-
- May 25, 2022
-
-
Alexander Polakov authored
-
- May 19, 2022
-
-
Niklas Adolfsson authored
-
- May 13, 2022
-
-
Niklas Adolfsson authored
* fix: generate docs for all features * ci: check for --cfg docsrs * fix nit: rustdoc::broken_intra_doc_links
-
- May 06, 2022
-
-
James Wilson authored
-
Niklas Adolfsson authored
* fix: generate docs behind features * address grumbles
-
- 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]>
-
- 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
* feat: untested web-sys transport * rewrite me * make it work * add hacks and works :) * add subscription test too * revert StdError change; still works * cleanup * remove hacks * more wasm tests outside workspace * kill mutually exclusive features * merge nits * remove unsafe hack * fix nit * core: fix features and deps * ci: add WASM test * test again * work work * comeon * work work * revert unintentional change * Update core/Cargo.toml Co-authored-by: David <[email protected]> * Update core/src/client/async_client/mod.rs Co-authored-by: David <[email protected]> * revert needless change: std hashmap + fxhashmap works * cleanup * extract try_connect_until fn * remove todo * fix bad merge * add wasm client wrapper crate * fix nits * use gloo-net dependency * fix build * grumbles CI: rename to `wasm_tests` * fix bad merge * fix grumbles * fix nit * comeon CI Co-authored-by: David <[email protected]>
-
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
These logs are most likely related to that the client terminated the connection and they come with significant overhead.
-
Niklas Adolfsson authored
-
- Apr 01, 2022
-
-
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]>
-