- Dec 01, 2021
-
-
Maciej Hirsz authored
* Squashed MethodSink * Middleware WIP * Passing all the information through * Unnecessary `false` * Apply suggestions from code review Co-authored-by: David <[email protected]> * Add a setter for middleware (#577) * Fix try-build tests * Add a middleware setter and an example * Actually add the example * Grumbles * Use an atomic * Set middleware with a constructor instead * Resolve a todo * Update ws-server/src/server.rs Co-authored-by: Maciej Hirsz <[email protected]> * Update ws-server/src/server.rs Co-authored-by: Maciej Hirsz <[email protected]> * Update ws-server/src/server.rs Co-authored-by: Maciej Hirsz <[email protected]> Co-authored-by: Maciej Hirsz <[email protected]> * Middleware::on_response for batches * Middleware in HTTP * fmt * Server builder for HTTP * Use actual time in the example * HTTP example * Middleware to capture method not found calls * An example of adding multiple middlewares. (#581) * Add an example of adding multiple middlewares. * Update examples/multi-middleware.rs Co-authored-by: Maciej Hirsz <[email protected]> * Update examples/Cargo.toml Co-authored-by: Maciej Hirsz <[email protected]> Co-authored-by: Maciej Hirsz <[email protected]> * Move `Middleware` to jsonrpsee-types (#582) * Move `Middleware` to jsonrpsee-types * Move Middleware trait to jsonrpsee-types * Add some docs. * Link middleware to `with_middleware` methods in docs * Doctests * Doc comment fixed * Clean up a TODO * Switch back to `set_middleware` * fmt * Tests * Add `on_connect` and `on_disconnect` * Add note to future selves Co-authored-by: David <[email protected]>
-
- Nov 17, 2021
-
-
Niklas Adolfsson authored
* fix: enable several sockaddress when starting servers * nits * more verbose asserts in rustdoc tests * fix tests * fix tests again
-
- Nov 11, 2021
-
-
Niklas Adolfsson authored
* ws server: don't kill connection max limit exceeds * Update ws-server/src/server.rs * actually use max size in soketto * rewrite me * improve logs * use soketto fix * rewrite me * fix nit * revert unintentional change * use soketto 0.7.1 * fix logger * Update ws-server/src/server.rs Co-authored-by: David <[email protected]> * Update ws-server/src/server.rs Co-authored-by: David <[email protected]> * Update ws-server/src/server.rs Co-authored-by: David <[email protected]> * Update ws-server/src/server.rs Co-authored-by: David <[email protected]> * Update ws-server/src/server.rs Co-authored-by: David <[email protected]> * fix build * reject too large response * fix some DRY code * feat: bounded serializer for RpcModule * Update utils/src/server/helpers.rs Co-authored-by: Maciej Hirsz <[email protected]> * Update utils/src/server/helpers.rs Co-authored-by: Maciej Hirsz <[email protected]> * address grumbles: safety and other nits * address grumbles: MaxCallSize on closures instead * Update utils/src/server/helpers.rs Co-authored-by: David <[email protected]> * use max response size on errors too * Revert "use max response size on errors too" This reverts commit 3b07e42d257b2eebae311b92b7f72594d94d5f87. * include max limit in error response Co-authored-by: David <[email protected]> Co-authored-by: Maciej Hirsz <[email protected]>
-
- Nov 08, 2021
-
-
Chris Sosnin authored
* Implement Future for server handles * Explicitly assert timeout errors in tests
-
- Oct 15, 2021
-
-
Niklas Adolfsson authored
-
- Oct 12, 2021
-
-
Niklas Adolfsson authored
-
Maciej Hirsz authored
* Document resource limiting * Formatting * More formatting * fmt * Doc comment wording Co-authored-by: David <[email protected]> * Cross-reference docs between servers and utils * Fix grumbles * More elaborate description * Update http-server/Cargo.toml Co-authored-by: Niklas Adolfsson <[email protected]> * Apply suggestions from code review Co-authored-by: David <[email protected]> * Allow for unlimited resources if cap is 0 * fmt * Update ws-server/Cargo.toml Co-authored-by: Niklas Adolfsson <[email protected]> * Clarify 8 resources, 0s in costs/limits, and runtime errors Co-authored-by: David <[email protected]> Co-authored-by: Niklas Adolfsson <[email protected]>
-
- 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]>
-
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 16, 2021
-
-
David authored
* Re-export v2::params, error, request and response types * Use shallow type paths
-
- 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
-
-
David authored
* Silence warning on cors_max_age * Revert change to `AccessControl`
-
- 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]>
-
- Aug 17, 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
-
- Aug 16, 2021
-
-
David authored
* Sniff the first byte to glean if the incoming request is a single or batch request This works around the serde limitations around `untagged` enums and `RawValue`. * fmt * For http server, check first byte before allocating space for the body Also, rework the way we return errors: prefer JSON-RPC errors according to spec (application/json) wherever sensible. * Review feedback * Don't assume there is a first byte to read * ty clipyp * Review concerns * Cleanup
-
- Aug 13, 2021
-
-
Niklas Adolfsson authored
Co-authored-by: David Palm <[email protected]>
-
David authored
* Sniff the first byte to glean if the incoming request is a single or batch request This works around the serde limitations around `untagged` enums and `RawValue`. * fmt * Review feedback * Don't assume there is a first byte to read * remove todo * review feedback
-
Niklas Adolfsson authored
-
- Jul 12, 2021
-
-
Maciej Hirsz authored
* Do not register methods on servers * fmt * Infallible `to_rpc` proc macro * Remove dead code * Check for duplicate names at compile time * Add a UI test for name conflicts * Apply suggestions from code review Co-authored-by: David <[email protected]> Co-authored-by: David Palm <[email protected]>
-
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 24, 2021
-
-
Igor Aleksanov authored
* Add a way to stop HTTP server * Add a way to stop WS server * Apply suggestions from code review Co-authored-by: David <[email protected]> * Ensure the concrete type of error in stop test * Resolve merge artifacts * Add public re-exports of stop handle Co-authored-by: David <[email protected]>
-
Niklas Adolfsson authored
* [jsonrpsee types]: unify types + more tests * address grumbles
-
- Jun 02, 2021
-
-
Maciej Hirsz authored
* Use a single map for methods * fmt * cargo fmt screwed indents somehow * Use Arc instead of Box for async methods * fmt * Implement `execute` on `MethodCallback` to keep things DRY * fmt * `OwnedJsonRpcRequest` is not necessary anymore * Call `execute` on `Methods` directly for even more DRY code * Update utils/src/server/rpc_module.rs Co-authored-by: Niklas Adolfsson <[email protected]> * Use `copied` instead of mapping a deref * DRY-er `params` in `MethodCallback` * Added comment on `0` conn_id in http Co-authored-by: Niklas Adolfsson <[email protected]>
-
Igor Aleksanov authored
* Enable docs/debug/pub warnings for server and types crates * Remove Debug bound on Notif * Stick to deriving debug * Update utils/src/server/rpc_module.rs Co-authored-by: David <[email protected]> Co-authored-by: David <[email protected]>
-
David authored
* Misc async methods tinkerings * Update utils/src/server/rpc_module.rs Co-authored-by: Niklas Adolfsson <[email protected]> * Update types/src/v2/params.rs Co-authored-by: Niklas Adolfsson <[email protected]> * Fix review grumbles * fmt Co-authored-by: Niklas Adolfsson <[email protected]>
-
- Jun 01, 2021
-
-
Igor Aleksanov authored
* Add basic support for async methods * Add support of async methods into ws server * Add support of async methods to HTTP server * Fix subscriptions method lookup * Remove type that appeared to be unused * Add comment on safety of unwrap in OwnedJsonRpcRequest::borrowed * Update utils/src/server/rpc_module.rs Co-authored-by: Niklas Adolfsson <[email protected]> Co-authored-by: Maciej Hirsz <[email protected]> Co-authored-by: Niklas Adolfsson <[email protected]>
-
David authored
* Remove register_* from Server * Tests pass * Some cleanup * more cleanup * Less bounds * Remove the `RpcMethod` trait – I don't think we need it. * fmt * Fix benches * Enable merging two modules with different contexts * Module registration returns number of methods on the server and checks for dupes Tests for module registration and some cleanup * Export `RpcModule` from façade crate fmt * Revert to return error from `Server::register_module` * Remove Server::methods * Remove TODO * Fix tests Fix http server to work the same as ws-server * Server::method_names * fmt * fix clippy warnings Co-authored-by: Niklas Adolfsson <[email protected]>
-
- May 24, 2021
-
-
David authored
* Switch from anyhow::Result to std Result * fmt * Use thiserror `#[from]` * Remove sadness
-
- May 19, 2021
-
-
Niklas Adolfsson authored
* get started * add additional test * fix nits * cargo fmt * [types]: write some tests. * [http server]: send empty response on notifs * [http server]: fix tests * [rpc module]: send subscription response * Update types/src/v2/error.rs * fix nits * cargo fmt * Update types/src/v2/params.rs * remove needless clone * remove dead code * [types]: impl PartialEq for JsonErrorObject + test * use beef::Cow * Update http-server/src/tests.rs
-
- May 18, 2021
-
-
Niklas Adolfsson authored
* [rpc server]: extract rpc_module to utils. This commit extracts the `rpc_module` from the servers to be shared. It will help to re-use rpc modules within both the servers * 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 utils/src/server/mod.rs Co-authored-by: David <[email protected]> * 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 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 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 utils/src/server/rpc_module.rs Co-authored-by: David <[email protected]> * address grumbles * fix build * fix docs * cargo fmt * Update utils/src/server/rpc_module.rs Co-authored-by: David <[email protected]> * grumbles: use MethodSink * Update utils/src/server/mod.rs Co-authored-by: David <[email protected]> * 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]> Co-authored-by: David <[email protected]>
-
- May 07, 2021
-
-
David authored
* Batch requests over the websocket * Use same call signature for both http and ws server * Use CallError instead of InvalidParams Add a draft batch request test * Sort out formatting of batch responses Cleanup Use CallError * Add test for slow method calls * Update utils/src/server.rs Co-authored-by: Niklas Adolfsson <[email protected]> * Add benchmark for batched websocket requests * rename * Rename batch channels * Sort out the InvalidParams situation * Remove one level of InvalidParams Return app-level error when call fails * Update ws-server/src/server.rs Co-authored-by: Andrew Plaza <[email protected]> * Update ws-server/src/server.rs Co-authored-by: Andrew Plaza <[email protected]> Co-authored-by: Niklas Adolfsson <[email protected]> Co-authored-by: Andrew Plaza <[email protected]>
-
- May 04, 2021
-
-
Niklas Adolfsson authored
* ret err if context/params fails * address grumbles: specific error_code context fail * address grumbles: make env_logger dev-dependency * address grumbles: add tests * chore(deps): remove unused deps * address grumbles: rename types and docs * address grumbles: more renaming. * fix build
-
David authored
* WIP * Implement draft of batch requests * fmt * cleanup * Explain why we don't use an untagged enum * Avoid allocating a Vec for single requets * Add comment * Add a benchmark for batch requests * Add more tests, noting where we diverge from the spec Fix empty batch case, i.e. `[]` * Obey the fmt * Update benches/bench.rs Co-authored-by: Andrew Plaza <[email protected]> * Update http-server/src/server.rs Co-authored-by: Andrew Plaza <[email protected]> * Add link to issue * Explain why we're closing the receiving end of the channel. * Limit logging of requests and response to 1kb Add more comments Factor out batch response collection * Wrap comment * tweak log line * Benchmark batch request over different batch sizes * fmt Co-authored-by: Andrew Plaza <[email protected]>
-
- Apr 28, 2021
-
-
Niklas Adolfsson authored
-
- Apr 26, 2021
-
-
Niklas Adolfsson authored
* [types]: allow `data` field in jsonrpc error obj. * fmt * revert change to make fail * remove redundant test * [types]: bring back `data` and `message` in error. Basically deducing the error message from server defined error doesn't work and we should not strip out this information from to user which might be useful. * remove boiler plate code * [types]: impl From<ErrorCode> for JsonRpcError * address grumbles * remove more boiler plate
-
- Apr 21, 2021
-
-
David authored
* Use a constant to express max request body size Consistently use u32 in all crates * Review grumbles
-
Niklas Adolfsson authored
* prep to release 0.2.0-alpha.5 * fix features * update readme * add changelog * add metadata to the crates on crates.io
-
- Apr 20, 2021
-
-
Niklas Adolfsson authored
* rewrite me * v2 * PoC works without batch request * remove `PartialEq` bounds * add naive benches types * misc * remove useless lifetime * [ws client]: move request ID generation to client * make tests compile again * [client transport]: kill leaky abstractions. * [http client transport]: minor changes in the API. * [ws client]: fix batch requests. * fix nits * [ws client]: generate two request IDs for subscrib * fix tests * remove unused types + less alloc for params. * fix nits * more tweaks. * remove unused code * fix more nits * remove unused legacy types * reorg types_v2 mod * port macros to new types * fix tests again; more jsonvalue * [proc macros]: bring back impl Into for params. * fix build * [proc macros]: make it work for external crates. * [types]: remove weird From<Option<T>> to impl. * cleanup again * [examples]: remove unused async-std dep * Update types/src/v2/mod.rs * [types]: remove unsed dep smallvec * rewrite me * [types]: error code impl ser/deser Manual implementation of serialize/deserialize to get rid of duplicated message string * [types v2]: re-org with explicit mods * fix faulty test * add missed files * [ws client]: req_manager reserve unsubscribe slot. * simplify test code * add tracking issue for TODO * remove unused deps
-
- Apr 12, 2021
-
-
Niklas Adolfsson authored
* [utils]: use futures mpsc Use futures::channel::mpsc as it's already brought in as dependency and to avoid bring in tokio sync as an additional dependency. * remove unused deps/code * fix nit * [utils]: future mpsc works without alloc. * [http server]: future mpsc works without alloc.
-
Niklas Adolfsson authored
-