1. Oct 11, 2021
    • Niklas Adolfsson's avatar
      [http server]: use tokio::spawn internally in `HttpServer::start` and return `StopHandle` (#402) · 6fb61dc1
      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: default avatarMaciej Hirsz <[email protected]>
      
      Co-authored-by: default avatarMaciej Hirsz <[email protected]>
      6fb61dc1
    • Niklas Adolfsson's avatar
      [http server]: use similar API for host and origin filtering as `WS` (#473) · 7a9ebc91
      Niklas Adolfsson authored
      
      
      * use similar API for HTTP ACL builder
      
      * revert unintentional change
      
      * fix nits
      
      * Update http-server/src/access_control/mod.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * grumbles
      
      Co-authored-by: default avatarDavid <[email protected]>
      7a9ebc91
    • 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 05, 2021
    • Niklas Adolfsson's avatar
      ws client redirections (#397) · 94c881b8
      Niklas Adolfsson authored
      
      
      * feat(ws client): support redirections
      
      * reuse socket
      
      * reuse socket
      
      * add hacks
      
      * fix build
      
      * remove hacks
      
      * fix bad merge
      
      * address grumbles
      
      * fix grumbles
      
      * fix grumbles
      
      * fix nit
      
      * add redirection test
      
      * Update test-utils/src/types.rs
      
      * Resolved todo
      
      * Check that redirected client actually works
      
      * Rename test-utils "types" to "mocks"
      
      * Fix windows test (?)
      
      * fmt
      
      * What is wrong with you windows?
      
      * Ignore redirect test on windows
      
      * fix bad transport errors
      
      * debug windows tests
      
      * update soketto
      
      * maybe fix windows test
      
      * add config flag for max redirections
      
      * revert faulty change.
      
      Relative reference must start with either `/` or `//`
      
      * revert windows path
      
      * use manual join paths
      
      * remove url dep
      
      * Update ws-client/src/tests.rs
      
      * default max redirects 5
      
      * remove needless clone vec
      
      * fix bad merge
      
      * cmon CI run
      
      Co-authored-by: default avatarDavid Palm <[email protected]>
      94c881b8
  3. Oct 01, 2021
  4. Sep 16, 2021
  5. 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
    • Niklas Adolfsson's avatar
      [http server]: export acl types + remove cors_max_age (#466) · be96c56d
      Niklas Adolfsson authored
      * [http server]: export acl + kill cors_max_age
      
      * fix cors_max_age nit
      
      * fmt
      
      * remove max_cors_age
      be96c56d
  6. Sep 14, 2021
    • David's avatar
      Fix build warnings (#465) · c13f97ba
      David authored
      * Silence warning on cors_max_age
      
      * Revert change to `AccessControl`
      c13f97ba
    • 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
  7. Sep 11, 2021
  8. Sep 08, 2021
  9. Aug 25, 2021
  10. 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
  11. 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
  12. Aug 13, 2021
  13. Jul 12, 2021
    • Maciej Hirsz's avatar
      Module API refactor (#412) · 8db65b42
      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: default avatarDavid <[email protected]>
      
      Co-authored-by: default avatarDavid Palm <[email protected]>
      8db65b42
    • David's avatar
      Rexport types for servers (#409) · 0592442e
      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
      0592442e
  14. Jun 24, 2021
  15. Jun 03, 2021
    • David's avatar
      Add a builder to the ws server (#365) · fa1f9e0e
      David authored
      * Add a builder to the ws server
      
      * Use the WsServerBuilder in tests&examples
      
      * cleanup
      
      * fmt
      
      * Fix benches
      
      * fix error message
      
      * Add connection count limiting and associated config item
      
      * Use the strong_count to `methods` to know how many connections we currently have
      
      * Fix test
      fa1f9e0e
  16. Jun 02, 2021
  17. Jun 01, 2021
    • Igor Aleksanov's avatar
      Fix clippy lints (#357) · 43ec342f
      Igor Aleksanov authored
      43ec342f
    • 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
  18. May 24, 2021
  19. May 22, 2021
    • Igor Aleksanov's avatar
      Add timeouts to the futures in tests (#332) · 2f234a03
      Igor Aleksanov authored
      * Add extension trait to timeout the futures execution
      
      * Use timeout for ws-server tests
      
      * Use timeout for ws-client tests
      
      * Use timeout for http-server tests
      
      * Use timeout for http-client tests
      
      * Make TimeoutFutureExt interafaces more explicit
      2f234a03
  20. May 19, 2021
    • Niklas Adolfsson's avatar
      [types]: ID type instead of serde_json::RawValue (#325) · 4e95f436
      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
      4e95f436
  21. May 18, 2021
  22. May 11, 2021
  23. May 07, 2021
  24. May 04, 2021
    • Niklas Adolfsson's avatar
      [servers] return error if context or params fails (#295) · b51abeca
      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
      b51abeca
    • David's avatar
      [http server] Batch requests (#292) · 2cae10b6
      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: default avatarAndrew Plaza <[email protected]>
      
      * Update http-server/src/server.rs
      
      Co-authored-by: default avatarAndrew 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: default avatarAndrew Plaza <[email protected]>
      2cae10b6
  25. Apr 28, 2021
  26. Apr 26, 2021
    • Niklas Adolfsson's avatar
      [types]: allow `data` field in jsonrpc error obj. (#286) · 187ee5e9
      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
      187ee5e9
  27. Apr 21, 2021