1. Aug 24, 2022
  2. Aug 16, 2022
  3. Jul 06, 2022
    • Niklas Adolfsson's avatar
      middleware refactoring (#793) · 3ee635ff
      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
      3ee635ff
  4. Jun 29, 2022
  5. Jun 13, 2022
  6. Jun 01, 2022
  7. May 11, 2022
  8. Apr 29, 2022
    • Niklas Adolfsson's avatar
      fix(rpc module): close subscription task when a subscription is `unsubscribed`... · 8e945de4
      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: default avatarDavid <[email protected]>
      
      * Update core/src/server/rpc_module.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * grumbles: use unwrap in tests
      
      * add test for reuse pipe_from_stream
      
      Co-authored-by: default avatarDavid <[email protected]>
      8e945de4
  9. Apr 20, 2022
  10. Apr 01, 2022
    • Niklas Adolfsson's avatar
      feat(http server): add new builder APIs `build_from_tcp` and `build_from_hyper` (#719) · 34c2fbef
      Niklas Adolfsson authored
      * unify servers; use tokio::TcpListener
      
      * add API to build server from tcp socket
      
      * build_from_tcp nit: not async
      
      * fix nits
      
      * change `build_from_tcp` force users configure hyper
      
      The hyper settings might contradict to settings on the provided
      socket, force users of this API to configure that avoid confusion and
      unexpected settings.
      
      * Update http-server/src/server.rs
      
      * fix doc links
      
      * add separate APIs `build_from_tcp` and `build_from_hyper`
      
      * fix clippy
      
      * remove dead code
      
      * fix build
      
      * fix nit in example code
      34c2fbef
  11. Jan 21, 2022
    • Niklas Adolfsson's avatar
      feat(rpc module): `stream API` for SubscriptionSink (#639) · 9bd21274
      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: default avatarDavid <[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: default avatarDavid <[email protected]>
      9bd21274
  12. Jan 05, 2022
    • Niklas Adolfsson's avatar
      fix(http server): handle post and option HTTP requests properly. (#637) · 6f99a038
      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: default avatarJames Wilson <[email protected]>
      6f99a038
  13. Dec 17, 2021
    • Maciej Hirsz's avatar
      Crate restructuring (#590) · e159c449
      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: default avatarNiklas Adolfsson <[email protected]>
      
      * fmt
      
      * Feature gate the Client trait
      
      * Move `Client` traits to `client` module
      
      Co-authored-by: default avatarNiklas Adolfsson <[email protected]>
      e159c449
  14. Nov 19, 2021
  15. Nov 17, 2021
  16. Nov 11, 2021
  17. Nov 08, 2021
  18. Nov 01, 2021
  19. 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
    • 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
  20. Sep 24, 2021
    • Niklas Adolfsson's avatar
      fix: ws server terminate subscriptions when connection is closed by the client. (#483) · 7cd7f36a
      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
      7cd7f36a
  21. Aug 25, 2021
  22. Jul 12, 2021
  23. 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
  24. Jun 04, 2021
    • 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
  25. 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
  26. Jun 01, 2021
    • 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
  27. May 28, 2021
  28. Apr 20, 2021
    • Niklas Adolfsson's avatar
      [client] use types v2 (less alloc) (#269) · 31153ac7
      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
      31153ac7
  29. Apr 16, 2021
  30. Apr 15, 2021
  31. Apr 01, 2021
    • Niklas Adolfsson's avatar
      HTTP server refactor (#253) · 49899740
      Niklas Adolfsson authored
      * refactor benches
      
      * start
      
      * fix build: enable `raw value` feature serde_json
      
      * start
      
      * port it
      
      * make tests compile
      
      * fix bench
      
      * fix bench
      
      * introduce builder pattern
      
      * tweaks
      
      * remove unused code
      
      * cleanup
      
      * [http server]: configure tcp socket manually.
      
      The major reason is to provide a uniform API with the WebSocket server to return the local address.
      
      * remove unused deps
      
      * [examples]: remove needless sleep
      
      * chore: add docs and refactor noise.
      
      * Update types/src/jsonrpc/error.rs
      
      * http server use constants
      49899740
  32. Feb 23, 2021
  33. Jan 18, 2021
    • Niklas Adolfsson's avatar
      merge v2 to master (#180) · 61656562
      Niklas Adolfsson authored
      * update http example
      
      * ungeneric crate
      
      * update dependencies
      
      * [client]: add WebSocket client again.
      
      * [deps]: remove needless dev dependencies
      
      * nits: forgot to commit new files
      
      * [ws client]: `send_text` instead of `send_binary`
      
      This is temporary fix to work with the `server` which assumes that
      `WebSocket` resonses are `text`
      
      * chore: add a bunch of more logging
      
      * [ws]: port tests but some are failing.
      
      * chore: fmt
      
      * [server API]: expose `fn local_addr` as public API.
      
      * [tests]: make them less ugly by using `127.0.0.1:0`
      
      * fix: a bunch of compiler warnings.
      
      * [api]: uniform naming, `bind -> new` in transport.
      
      * [websocket server]: reply when deserial fails
      
      When the server receives an request with invalid JSON
      `-32700, Parse error shall be returned`
      
      * chore: fmt
      
      * [tests]: fix remaining tests
      
      * [websocket server]: support `binary` and `text`
      
      * [ws server]: fix bug in subscription response.
      
      `.await` was missing in RegisteredSubscription::send() and no responses
      were actually sent which this commit fixes.
      
      * [client API]: export `WsSubscription`
      
      * [examples]: use `localhost` instead of `127.0.0.1`
      
      Hostname is required when using `wss` and `127.0.0.1` is not valid hostname.
      
      * [examples]: add subscription example.
      
      * chore: fmt
      
      * [ws server]: fix bug register new subscription.
      
      Fixes newly introduced bug that causes `register_subscription` to have
      side-effects even if the subscription fails.
      
      * fmt
      
      * more uniform logs
      
      * [ws server]: simple subscription test.
      
      * [ws server]: subscription tests improved.
      
      * [tests]: extract test helpers to a separate crate (#125)
      
      * [ws server]: don't close connection when `deserialization` fails (#131)
      
      * [ws server]: don't close conn. when `deser` fails
      
      * Update src/ws/transport.rs
      
      * grumbles: prefer matching of if else.
      
      * chore: CI warn `intra_doc_link_resolution_failure` (#139)
      
      Since we have not updated the documentation properly it's annoying that
      the entire job fails.
      
      * chore: rustfmt.toml (#138)
      
      * chore: add `rustfmt.toml` for formatting
      
      * style: `cargo fmt --all` with new config
      
      * [server raw params]: fix debug implementation (#137)
      
      * [server]: simply raw params impl
      
      Use debug implementation of `common::Params` instead of doing something
      similar that doesn't work properly.
      
      * [raw params]: derive `Debug` impl.
      
      * [ws server]: parse subscription ID for unsubscription instead of hardcoding `JsonValue::Null` (#136)
      
      * [ws server]: fix broken unsubscribe.
      
      Try to parse the subscription ID as the first element of an Array or the `subscription`
      field of an Object/Map.
      
      If both of those fails then regard it as a error.
      
      * fmt
      
      * fix grumbles: remove space indentation
      
      * fix(ws server): sub/unsubscribe to same method should generate an error (#140)
      
      * fix(ws server): sub/unsubscribe to same method err
      
      Subscribe and unsubscribe to the same method should generate an error, which this commit fixed.
      This bug was introduced by myself in https://github.com/paritytech/jsonrpsee/commit/fc87889de2615dbb3d0cf2d91a306f016d48df2d
      
      
      
      * Update src/ws/server.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * chore: add naive benches for request/response (#142)
      
      Co-authored-by: default avatarNiklas <[email protected]>
      
      * fix(ws server): remove faulty debug_assert (#145)
      
      The code assumed that `subscription id` is still in `active_subscriptions` when the
      connection was dropped.
      
      The list of subscriptions (kept in raw server) are not notified when a client dropped its
      subscription/unsubscribed thus it's possible that the actual subscriptions are closed before the
      entire client was dropped.
      
      * ci(benches): cargo check on benches. (#146)
      
      * fix(http client): implement `clone` uniform API. (#147)
      
      * chore(deps): update `futures v0.3.7` (#148)
      
      * chore(deps): update remaining crates (#149)
      
      * chore(deps): update `futures v0.3.7`
      
      * chore(deps): bump the rest of deps
      
      * Improve HTTP client background thread (#150)
      
      * refactor: resultify API + some crate reorg (#144)
      
      * [ws client]: resultify API and fix subscribe.
      
      * The commit changes the API to return `Err` when it's possible and to not ignore underlying errors.
      * Fix that `fn subscribe` doesn't accept the subscription and unsubscription to be same which causes
      errors in the server.
      
      * nits: Err::SubscriptionMetod -> Err::Subscription
      
      * refactor(client): common error type
      
      * refactor(http client): resultify
      
      * refactor(common): rename common -> types..
      
      This commit renames the `common module` to `types` and tries to distinguish the types that is
      directly related to the `JSON-RPC v2 specification` from others.
      
      Somethings are a little big sloppy named as naming is hard.
      
      Also, as bonus a removed a bunch of needless stuff in http server related to subscription.
      
      * Update src/ws/tests.rs
      
      * style: cargo fmt
      
      * fix(grumble): matches -> assert(matches)
      
      * fix(grumbles): `jsonrpc_v2` -> `jsonrpc`
      
      * fix(nit): remove unused code.
      
      * fix(benches): make it compile again.
      
      * style: cargo fmt
      
      * fix nits (#151)
      
      * fix(ws client): send binary (1 byte less payload)
      
      * docs(ws server): fix bad comment.
      
      * chore: add `editorconfig` (#152)
      
      * chore: make `debug log` less verbose. (#153)
      
      * chore: make `debug log` less verbose.
      
      The debug logging was just too verbose and this commit simplies it as follows:
      
      ```
      DEBUG recv: {"jsonrpc":"2.0","method":"<METHOD>","params":<PARAMS>,"id":<ID>}
      DEBUG send: {"jsonrpc":"2.0","result":"<RESULT>","id":<ID>}
      ```
      
      * style: cargo fmt
      
      * fix: missed logs
      
      * [jsonrpc types]: implement Display for Request/Response (#160)
      
      * feat(jsonrpc response/request): impl `Display`
      
      * refactor(logging): use display impl
      
      * use serde_json for verbosity
      
      * [http client]: refactor with "syncronous-like" design (#156)
      
      * experimental
      
      * ci(benches): sync and concurrent roundtrips
      
      Improve benchmarks to take concurrent requests into account.
      
      * ci(benches): sync and concurrent roundtrips
      
      Improve benchmarks to take concurrent requests into account.
      
      * fix(nits)
      
      * feat(http client): limit max request body size
      
      * test(http transport): request limit test
      
      * test(http client): add tests.
      
      * fix typo
      
      * fix(benches): make it compile again.
      
      * fix(ws example): revert unintentional change.
      
      * test(http client): subscription response on call.
      
      * fix(cleanup)
      
      * fix(benches): make it compile again.
      
      * Update src/client/http/transport.rs
      
      * fix(http client): `&str` -> `AsRef<str>`
      
      * docs(client types): better docs for Mismatch type.
      
      * style: `Default::default` -> `HttpConfig::default`
      
      * fix(http client): read body size from header.
      
      Expermential to read number of bytes from `HTTP Content Length` to pre-allocate the number of bytes and bail early
      if the length is bigger than the `max_request_body size`
      
      Need to be benched with bigger requests.
      
      * test(raw http): enable tests to works again.
      
      * style: cargo fmt
      
      * benches: address grumbles
      
      * feat(jsonrpc response/request): impl `Display`
      
      * refactor(logging): use display impl
      
      * fix(http client): nits.
      
      * Update benches/benches.rs
      
      * fix bad merge.
      
      * chore(deps): update dependencies. (#164)
      
      * feat(http server): configurable request body limit (#162)
      
      * feat(http server): configurable request body limit
      
      * refactor(crate reorg): to have shared http helpers.
      
      * Merge client and server errors.
      * Move `http_server_utils` to `utils/http`
      * Minor cleanup
      
      * fix nits
      
      * fix(hyper helper): u64 -> u32
      
      * Update src/utils/http/hyper_helpers.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * Update src/utils/http/hyper_helpers.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * fix: grumbles
      
      * Update src/utils/http/hyper_helpers.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * Update src/http/server.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * ci: remove nightly (#167)
      
      Use stabilized `broken_intra_doc_links` instead of `intra_doc_link_resolution_failure`
      
      * fix(websocket client): drop subscriptions that can't keep up with the internal buffer size (#166)
      
      * fix(ws client): drop subscriptions when full.
      
      This commit changes the behavior in the `WebSocket Client` where each subscription channel is used in a non-blocking
      matter until it is determined as full or disconnected. When that occurs the channel is simply dropped and when
      the user `poll` the subscription it will return all sent subscriptions before it was and terminate (return None)
      once it's polled one last time. Similarly as `Streams` works in Rust.
      
      It also adds configuration for the `WebSocket Client` to configure capacity for the different internal channels to avoid
      filling the buffers when it's not expected.
      
      * tests(ws client): simple subscription test.
      
      * fix: nits
      
      * Update src/client/ws/client.rs
      
      * refactor(tests): introduce integration_tests
      
      Make the repo structure more understable w.r.t testing.
      
      * chore(license): add missing license headers
      
      * Update src/client/ws/client.rs
      
      * Update src/client/ws/client.rs
      
      * style: remove unintended spaces.
      
      * tests: add concurrent deadlock test
      
      Ensure that if more than the requested channel buffer capacity is exceeded it should not deadlock.
      Such as spawning alot of concurrent requests, notifications or new subscriptions.
      
      * Update src/client/ws/client.rs
      
      * fix: review grumbles
      
      * fix nits: `remove needless closure`
      
      * fix: cargo fmt
      
      * Update src/client/ws/client.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * fix more nits
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * fix(ws client): embed request id in `SubscriptionClosed` (#170)
      
      * fix(ws client): embed request id SubscriptClosed
      
      Fixes https://github.com/paritytech/jsonrpsee/issues/169
      
      
      
      * Update src/client/ws/client.rs
      
      * Update src/client/ws/client.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * Update src/client/ws/client.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * chore(deps): bump dependencies (#172)
      
      * [ws client]: add tests (#134)
      
      * [test utils]: add `internal_err` and consts
      [errors]: unify client/server errors
      [test utils]: fake WebSocket jsonrpc server
      [ws client]: export errors
      [ws client]: add some basic tests
      
      * fmt
      
      * remove log target
      
      * fix nits
      
      * [ws client]: add subscription test
      
      * revert unintendend changes.
      
      * fmt
      
      * [ws client]: fix panic in tests
      
      * cleanup
      
      * tests(ws client): test for invalid request ID.
      
      * fix nits
      
      * [ws client]: kill raw client (#171)
      
      * getting started
      
      * WIP WIP
      
      * cleanup
      
      * cleanup v2
      
      * cleanup v3
      
      * perf: use BufReader BufWriter
      
      * fix(request manager): resultify insert API
      
      The rationale behind this change is that the `insert_methods` takes ownership of the `send_back_oneshot`
      and if the operation fails it should be propagated the frontend.
      
      So returning the `Err(send_back_oneshot)` if it fails makes it possible.
      
      * fix nits
      
      * examples(ws): revert changes
      
      * Update tests/integration_tests.rs
      
      * nits: fix unwraps
      
      * Update src/client/ws/manager.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * Update src/client/ws/transport.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * Update src/client/ws/client.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * fix build
      
      * refactor: simplify `Error::InvalidRequestId`
      
      It was hard to use when the expected id is not known.
      
      * fix(ws client): error handling.
      
      * fix(grumble error type): better error message.
      
      * fix(grumble): docs `JSONRPC WebSocket transport`
      
      * fix(ws manager): fix grumbles.
      
      * Add better documentation
      * Rename methods.
      * Add `proof` to unreachable!
      
      * fix(ws manager): fix nit in docs.
      
      * fix(grumbles): ws client
      
      * fix more nits
      
      * fix compile warning: export websocket transports.
      
      * Update src/client/ws/manager.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * deps: tokio 1.0 and hyper 0.14 (#176)
      
      * deps: tokio 1.0 and hyper 0.14
      
      * Update Cargo.toml
      
      * refactor: crate re-organization with separate crates (#177)
      
      * [ci]: feature `http` and `ws` removed.
      
      * refactor: re-org crate with smaller crates.
      
      * fmt
      
      * [ci]: remove default features
      
      Currently there are no features in the crates, so that check is not needed.
      
      * [http client]: remove unused dependency tokio
      
      * docs(http client): fix nits tokio 0.2 -> tokio 1.0 (#178)
      
      * docs(http client): tokio 0.2 -> tokio 1.0
      
      * fix: better link
      
      * [ci]: github actions (#179)
      
      * docs(http client): tokio 0.2 -> tokio 1.0
      
      * [ci]: remove travis
      
      * [ci]: add github actions.
      
      * [ci]: fix identation nits
      
      * [ci]: use cache for actions
      
      * [ci]: filter to clippy
      
      * [ci]: remove hacks
      
      * separate action for ci and benchmarks
      
      * [ci]: tweak to run on master branch.
      
      * examples/subscription -> examples/ws_subscription
      
      * force CI
      
      Co-authored-by: default avatarDavid <[email protected]>
      Co-authored-by: default avatarMaciej Hirsz <[email protected]>
      Co-authored-by: default avatarAtkins <[email protected]>
      61656562