- 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]>
-
- 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
* 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 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
-
-
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
-
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 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
-
-
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
-
- Nov 19, 2021
-
-
Niklas Adolfsson authored
* feat: override `method` subscription notif * Arrow syntax for overwrites (#569) * check that unique notifs are used * check that custom sub name is unique * cargo fmt * address grumbles * Update proc-macros/src/rpc_macro.rs * commit added tests * Update proc-macros/src/render_server.rs Co-authored-by: David <[email protected]> * Update proc-macros/src/render_server.rs Co-authored-by: David <[email protected]> * Update proc-macros/src/rpc_macro.rs Co-authored-by: David <[email protected]> * Update proc-macros/src/rpc_macro.rs Co-authored-by: David <[email protected]> * Update utils/src/server/rpc_module.rs Co-authored-by: David <[email protected]> * grumbles * fix long lines * Update utils/src/server/rpc_module.rs Co-authored-by: David <[email protected]> * Update utils/src/server/rpc_module.rs Co-authored-by: David <[email protected]> * Update proc-macros/src/rpc_macro.rs Co-authored-by: David <[email protected]> * Update proc-macros/src/render_server.rs Co-authored-by: David <[email protected]> * Update proc-macros/src/render_server.rs Co-authored-by: David <[email protected]> * more grumbles Co-authored-by: Maciej Hirsz <[email protected]> Co-authored-by: David <[email protected]>
-
- Nov 01, 2021
-
-
Niklas Adolfsson authored
* reproduce Kian's issue * fix ws server wait until batches has completed * fix nit * clippify * enable benches for ws batch requests * use stream instead of futures::join_all * clippify * address grumbles: better assert
-
- Oct 11, 2021
-
-
Niklas Adolfsson authored
* [ws server]: refactor start() * remove needless clone * fix http server too * fmt * unify stop APIs * fix bad merge * add API to use custom tokio runtime * use futures oneshot * fix unintentional change * Revert "use futures oneshot" This reverts commit 0432f6ba41d49a3494943458657a31f8afd79160. * Update http-server/src/server.rs Co-authored-by: Maciej Hirsz <[email protected]> Co-authored-by: Maciej Hirsz <[email protected]>
-
Niklas Adolfsson authored
* fix(ParamsSer): serialize to empty array Serialize `ParamsSer::NoParams` to an empty array inorder to comply with the jsonrpc v2 spec. * fix tests * remove ParamsSer::NoParams * address grumbles: adjust rpc params macro
-
Maciej Hirsz authored
* Squash post merge * RAII claims and some comments * Adding resources to Methods * Use arrays for claiming all resources at once * Register resources on ws-server * Return MethodResourcesBuilder from register_method * Return MethodResourcesBuilder from register_async_method * fmt and comments * Add `verify_and_insert` to get rid of `or_insert` in order to get mut ref to value * Resources initialization * No need for ResourceBuilder * Comment all the things * Handle errors on ws-server `start` method * Passing ResourceGuard to method execution * Start ws-server in background, simplify all the tests! * Claiming resources on runtime * Do checked math on resource claiming * Clearer error path for resources at limit * Resource limiting tests WIP * Unbox async futures * fmt * Cleaner proc macro * Fix lifetime issues with ResourceGuard with internal Arc * Remove unnecessary lifetime generic * Working tests * Use turbofish in tests * fmt * Fixed (?) benches * Apply suggestions from code review Co-authored-by: David <[email protected]> * Tweak more grumbles * Adding a test for resource limiting with proc macros (WIP) * Reworking attribute macros for resource limiting (#507) * Squashed macros WIP * bae-less macros! * Make things simpler and more readable * Some comments and DRY aliases parsing * Naming things is hard * Respan is no longer needed * Simpler Arguments * Remove stale code * Apply suggestions from code review Co-authored-by: Niklas Adolfsson <[email protected]> * syn-up all the things, handle resources on methods Co-authored-by: Niklas Adolfsson <[email protected]> * Resource limiting on the http server * Test two resources at once * Test the HTTP server for resource limiting * Apply suggestions from code review Co-authored-by: David <[email protected]> Co-authored-by: Niklas Adolfsson <[email protected]> * Comment tweaks * More explicit error type for `AttributeMeta::retain` * Remove generic from ResourceTable; derive Default on ws Builder * Make the macros shorter Co-authored-by: David <[email protected]> Co-authored-by: Niklas Adolfsson <[email protected]>
-
- Sep 30, 2021
- Sep 24, 2021
-
-
Niklas Adolfsson authored
* fix: server should not send to closed subscription Closing #481 * add a test * rewrite me * remove faulty server close * fix tests * fix tests * remove needless code * Update ws-client/src/client.rs * fix: remove atomic flag; use `close_sender` * remove terminate message; use close channel * remove faulty subscription closed error msg * fix tests * fix grumbles * fix build
-
- Sep 16, 2021
- Sep 15, 2021
-
-
David authored
* Renames * More renames * fmt * s/RpcParams/Params/ * Add a type alias `SubscriptionResponse` to `Notification` which is parametrized to `SubscriptionPayload` Move `SubscriptionResponse` to the `response` module * Fix doc links * Cleanup and some docs * Review feedback * cleanup
-
- Sep 14, 2021
-
-
Maciej Hirsz authored
* Reject overflowing connection with status code 429 * fmt * rename Handshake -> HandshakeMode for clarity; verbose test * Gracefully shutdown after rejecting to hopefully fix the errors on windows * HandshakeMode -> HandshakeResponse; tweak pending subscriptions on shutdown test
-
- Sep 01, 2021
-
-
Maciej Hirsz authored
* Experimental generic driver for methods * Move FutureDriver to its own module * "Infallible" sync methods + fmt * Drive all methods to completion before background_task closes * Testing a different stop handle * Added the waker for the monitors * Fix the test * Fix a possible deadlock * fmt * Explain strong_count check in StopHandle Drop impl * Clippy tweak Co-authored-by: Niklas Adolfsson <[email protected]> * Added comment on atomicbool ordering Co-authored-by: Niklas Adolfsson <[email protected]>
-
- Aug 25, 2021
-
-
David authored
* Add license headers where missing and update year * Update examples/http.rs Co-authored-by: Niklas Adolfsson <[email protected]> Co-authored-by: Niklas Adolfsson <[email protected]>
-
- Jul 12, 2021
-
-
David authored
* Include "macros" in the "server" feature * Re-export SubscriptionSink * Include the "types" feature in both the "client" and "server" features Export types::* from façade when the "types" is active Export types::* from servers * fmt * Export jsonrpsee_types under types * fmt * broken doc link * fix benches * fmt * Fix test imports
-
- Jun 30, 2021
-
-
Niklas Adolfsson authored
* [ws server]: terminate connection when closed. * fix tests * add test * address grumbles: return Ok when server stopped * revert log * revert outdated documentation * use wrapping add for conn id * address grumbles: replace Mutex with AtomicBool * add comment to assertion * fix nits * address grumbles: naming of variables * address grumbles: RwLock to wait for tasks This commit introduces a RwLock instead of the Mutex to the shared by the background tasks and the stop handle won't signal until all readers has been dropped. * fix nit * Update ws-server/src/server.rs * remove AtomicBool; use stop_sender instead * Update ws-server/src/server.rs * Update ws-server/src/server.rs Co-authored-by: David <[email protected]> * correct subscription err messages Co-authored-by: David <[email protected]>
-
- Jun 04, 2021
-
-
Niklas Adolfsson authored
* [rpc module]: server-side close subscription Add functionality that closes the subscription after the sink has been dropped. * [integration tests]: add timeout on futures * remove global subscriber mutex * fix nit * [client types]: fix #349 Subscription::next() propogate error when parsing the response fails * [client types]: fix #349 Subscription::next() propogate error when parsing the response fails * unify subscription and notification * rename again * send notif response when subscription is dropped * stray debug stuff * Update utils/src/server/rpc_module.rs Co-authored-by: David <[email protected]> * Revert "[client types]: fix #349" This reverts commit c4fefade719ebd8c964a62d0eb16f89db3346ccd. * Revert "[integration tests]: add timeout on futures" This reverts commit 21dfb99649aaaa8c847a693b4510e0202498fa2c. * show that actual edge-case * fix nit * Update types/src/traits.rs * fix bad merge * ugly; but works * complete solution * get rid of Option * Update tests/tests/integration_tests.rs * Update utils/src/server/rpc_module.rs * Update utils/src/server/rpc_module.rs Co-authored-by: David <[email protected]> * grumbles: fix faulty early return * remove weird abstraction KeepAlive * fix nits * revert test timeouts * address grumbles * fix build Co-authored-by: David <[email protected]>
-
- Jun 03, 2021
-
-
Niklas Adolfsson authored
* [client types]: fix #349 Subscription::next() propogate error when parsing the response fails * unify subscription and notification * rename again * Update types/src/traits.rs * fix bad merge * Update types/src/client.rs Co-authored-by: David <[email protected]> * grumbles: subscribe_method -> subscribe_to_method * Update tests/tests/integration_tests.rs Co-authored-by: David <[email protected]> * grumbles: doc links Co-authored-by: David <[email protected]>
-
Igor Aleksanov authored
* Stick test code to a single runtime * Replace async-std in ws-client with tokio * Replace std::thread::sleep with tokio::time::sleep in test * Add compatibility layer for tokio v0.2 * Add check for both features being enabled + some improvements * Update ws-client/src/tokio.rs Co-authored-by: Niklas Adolfsson <[email protected]>
-
- Jun 01, 2021
-
-
Igor Aleksanov authored
-