1. Oct 11, 2021
    • Niklas Adolfsson's avatar
      remove `ParamsSer::NoParams` (#501) · b3e4297b
      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
      b3e4297b
    • Niklas Adolfsson's avatar
      improve SubscriptionClosed error (#504) · 36bdb85e
      Niklas Adolfsson authored
      Closing #485
      36bdb85e
    • Maciej Hirsz's avatar
      Resource Limiting (#500) · 518a6155
      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: default avatarDavid <[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: default avatarNiklas Adolfsson <[email protected]>
      
      * syn-up all the things, handle resources on methods
      
      Co-authored-by: default avatarNiklas 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: default avatarDavid <[email protected]>
      Co-authored-by: default avatarNiklas 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: default avatarDavid <[email protected]>
      Co-authored-by: default avatarNiklas Adolfsson <[email protected]>
      518a6155
  2. Oct 01, 2021
  3. Sep 29, 2021
  4. Sep 24, 2021
  5. Sep 16, 2021
  6. Sep 15, 2021
    • David's avatar
      Rename and reorg types (#462) · 635142e3
      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
      635142e3
  7. Sep 14, 2021
    • David's avatar
      Propagate cause of `InvalidParams` (#463) · b16568b4
      David authored
      * Add a test illustrating how to use the `call` convenience method
      
      * Extend test + review feedback
      
      * log
      
      * log
      
      * log
      
      * log
      
      * log
      
      * log
      
      * log
      
      * log
      
      * log
      
      * log
      
      * log
      
      * log
      
      * log
      
      * log
      
      * log
      
      * Add Methods::test_subscription
      Log more when params parsing fails
      
      * Add call_with test helper (ty @niklas!) + cleanup
      
      * Remove todo (part of https://github.com/paritytech/jsonrpsee/issues/457
      
      )
      
      * fmt
      
      * Let `test_subscription` be called from other crates
      
      * Manually fix indentation
      
      * fmt
      
      * SSself-review grumbles
      
      * CallError::InvalidParams carries an anyhow::Error
      
      * fmt
      
      * Tweak docs
      
      * Update utils/src/server/rpc_module.rs
      
      Co-authored-by: default avatarNiklas Adolfsson <[email protected]>
      
      * review grumble
      
      * Fix todos
      
      * fmt
      
      * Fixup error messages
      
      * Include source in the error message for `CallError`
      
      * fmt
      
      * Update proc-macros/src/render_server.rs
      
      Co-authored-by: default avatarMaciej Hirsz <[email protected]>
      
      * Mention needing jsonrpsee crate in scope
      
      * Resolve todo
      
      * Impl ToRpcParams for 0-sized array
      
      * optimized logging
      
      Co-authored-by: default avatarNiklas Adolfsson <[email protected]>
      Co-authored-by: default avatarMaciej Hirsz <[email protected]>
      b16568b4
  8. Sep 13, 2021
  9. Sep 11, 2021
  10. Aug 25, 2021
  11. Aug 18, 2021
    • Niklas Adolfsson's avatar
      [proc macros] force proc macro api to return `Result` (#435) · 09abbaaa
      Niklas Adolfsson authored
      * rewrite me
      
      * require proc macro API to return result
      
      * send unknown message when error is not CallError
      
      * show example that auto cast StdError doesn't work
      
      * register_*_method Into<Error>
      
      * clippy
      
      * replace generic errors with anyhow::Error
      
      * fix nits
      
      * example that anyhow::Error in register_method works
      
      * CallError: add missing From impl
      
      * [types]: add helper methods for Error types
      
      The rationale is to make it possible for users to either use anyhow::Error or use the helper methods.
      
      * fmt
      
      * Revert "register_*_method Into<Error>"
      
      This reverts commit 33b4fa28730b72647ba150659d3c0ab1937e524a.
      
      * add better comment
      
      * fix nit
      09abbaaa
  12. Aug 17, 2021
    • Maciej Hirsz's avatar
      Concurrent polling on async methods (#424) · c69e0dd8
      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
      c69e0dd8
  13. Aug 16, 2021
    • David's avatar
      Don't allocate until we know it's worth it (#420) · 326d0c91
      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
      326d0c91
  14. Aug 13, 2021
  15. Aug 09, 2021
  16. Jul 27, 2021
    • Maciej Hirsz's avatar
      Proc macro params optimizations and tests. (#421) · 3d52c6ac
      Maciej Hirsz authored
      * WIP
      
      * Feature-complete-ish
      
      * WIP
      
      * Cleaner replace marker
      
      * Inject lifetimes in elided `Cow`s
      
      * Use a single static &str for all injected lifetimes
      
      * Working lifetimes
      
      * Add the `call` method to `Methods`
      
      * Testing proc macro with optional params
      
      * Remove internal loop
      
      * fmt
      
      * Fix grumbles
      3d52c6ac
  17. Jul 12, 2021
  18. Jul 10, 2021
    • David's avatar
      Pass OwnedRpcParams to async methods (#410) · d5d67e98
      David authored
      
      
      * Pass OwnedRpcParams to async methods
      
      * Cow-ified RpcParams
      
      * fmt
      
      * Separate `RpcParamsSequence` parser from `RpcParams`
      
      * Remove OwnedId, use Id<'static> instead
      
      * Ensure that parsed `Id` is borrowing from input slice
      
      * Tweak/add some docs
      Test that parse() works after calling sequence()
      
      * Fix rustdoc link
      
      Co-authored-by: default avatarMaciej Hirsz <[email protected]>
      d5d67e98
  19. Jul 01, 2021
  20. Jun 30, 2021
    • Niklas Adolfsson's avatar
      [ws server]: terminate already established connection(s) when the server is stopped (#396) · 7a33bf50
      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: default avatarDavid <[email protected]>
      
      * correct subscription err messages
      
      Co-authored-by: default avatarDavid <[email protected]>
      7a33bf50
  21. Jun 29, 2021
  22. Jun 24, 2021
  23. Jun 18, 2021
  24. Jun 07, 2021
  25. Jun 04, 2021
    • David's avatar
      Release prep for v0.2 (#368) · b3a0748b
      David authored
      * Release prep
      
      * Mention proc macro limitations
      
      * Mention publish script
      b3a0748b
    • Niklas Adolfsson's avatar
      [rpc module]: server-side close subscription (#355) · b987b811
      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: default avatarDavid <[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: default avatarDavid <[email protected]>
      
      * grumbles: fix faulty early return
      
      * remove weird abstraction KeepAlive
      
      * fix nits
      
      * revert test timeouts
      
      * address grumbles
      
      * fix build
      
      Co-authored-by: default avatarDavid <[email protected]>
      b987b811
  26. Jun 02, 2021
  27. Jun 01, 2021
    • Igor Aleksanov's avatar
      Basic support for async methods (#327) · 2da9244b
      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: default avatarNiklas Adolfsson <[email protected]>
      
      Co-authored-by: default avatarMaciej Hirsz <[email protected]>
      Co-authored-by: default avatarNiklas Adolfsson <[email protected]>
      2da9244b
    • David's avatar
      Unify RpcModule types (#350) · c2c66e1a
      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: default avatarNiklas Adolfsson <[email protected]>
      c2c66e1a
  28. May 31, 2021