1. Jul 08, 2021
  2. Jun 24, 2021
  3. Jun 03, 2021
  4. May 25, 2021
    • Niklas Adolfsson's avatar
      [ws client]: parse `path` from the URL (#335) · a60896e1
      Niklas Adolfsson authored
      * [ws client]: parse `path` from the URL
      
      This commit changes that the path/HTTP resource path is parsed from the URL and removes that option
      from WsClientBuilder.
      
      * address grumbles: introduce `RemoteWsTarget` type.
      
      * grumbles: RemoteWsTarget -> Target
      
      * cargo fmt
      a60896e1
  5. 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
  6. May 17, 2021
    • Albin Hedman's avatar
      Add certificate_store() to WsClientBuilder (#321) · 8780fcef
      Albin Hedman authored
      * Add custom_certificate to WsClientBuilder
      
      * Use system certs instead of specified file
      
      * Cache client_config
      
      * Move client_config logic to fn build
      
      * Default use_system_certificates to true
      
      * Move out connector
      
      * Add CertificateStore type
      
      * cargo fmt
      
      * cargo clippy
      
      * Resolve comment: Rename variable
      
      * Resolved comments
      8780fcef
  7. May 12, 2021
    • Billy Lindeman's avatar
      [ws client] RegisterNotification support (#303) · c7384471
      Billy Lindeman authored
      * Rename NotifResponse to SubscriptionResponse to make room for new impl
      
      * Add support for on_notification Subscription<T> types
      
      * Fix handling of NotificationHandler in manager
      
      * cleanup
      
      * Implement NotificationHandler to replace Subscription<T> and clean up plumbing
      
      * More cleanup
      
      * impl Drop for NotificationHandler
      
      * Address pr feedback #1
      
      * ws client register_notification pr feedback 2
      
      * Fix doc
      
      * fix typo
      
      * Add tests, get NH working
      
      * More cleanup of String/&str
      
      * fix doc
      
      * Drop notification handler on send_back_sink error
      
      * ws client notification auto unsubscribe when channel full test
      c7384471
  8. 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
  9. 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
    • David's avatar
      Use SeqCst everywhere (#289) · fb6b34be
      David authored
      I went over all the atomic operations and realised I could not convince myself that all uses of `Relaxed` were ok, so better safe than sorry: let's switch to `SeqCst`.
      fb6b34be
    • Niklas Adolfsson's avatar
      [ci]: bring back rustdoc check. (#287) · c450f106
      Niklas Adolfsson authored
      c450f106
  10. Apr 24, 2021
  11. Apr 21, 2021
  12. 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
  13. Apr 19, 2021
  14. Apr 01, 2021
  15. Mar 31, 2021
    • Niklas Adolfsson's avatar
      [client] batch requests (#216) · b8bd715d
      Niklas Adolfsson authored
      
      
      * feat(http client): batch requests
      
      * fix(http batch request): request in any order.
      
      * Update src/types/jsonrpc/id.rs
      
      * tests(batch out-of-order): make it less confusing.
      
      * fix nit: `cloned` -> `copied`
      
      * fix bad merge
      
      * [client]: batch request generic response
      
      * wait with impl
      
      * [ws client]: add template for batch requests
      
      * remove jsonvalue
      
      * naive impl
      
      * fix make it work,
      
      The implemenation is quite inefficient because the responses might be unordered.
      Currently, a "digest" of a BTreeSet is stored to sort the requestIDs
      and don't have to try all combinations of requestIDs in the response.
      
      * fix nits
      
      * error handling
      
      * fix nits
      
      * more nits
      
      * use error msg pattern
      
      * add batch requests to client trait
      
      Keep it simple by require `Vec<(Method, Params)>` could be improved.
      
      * address review comments: use swap_remove
      
      Replace read values with `Vec::swap_remove` instead inserting dummy value.
      The reason is that `Vec::remove` is O(n)
      
      * address review grumbles: batch trait bound Default
      
      * don't be clever
      
      * [http client]: faster lookup for batch request.
      
      * fix: distguish request_id and batch_id
      
      * thanks clippy
      
      * fix: clarify bad response with a separate error
      
      * fix tests
      
      * add issue link to todo
      
      * Update types/src/error.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      Co-authored-by: default avatarDavid <[email protected]>
      b8bd715d
  16. Mar 16, 2021
  17. Mar 12, 2021
  18. Mar 09, 2021
    • Niklas Adolfsson's avatar
      [ws client]: register request IDs for unsubscribe requests. (#223) · 09e7a4d6
      Niklas Adolfsson authored
      
      
      * [ws client]: register request ID for unsubscribe.
      
      Fixes #220
      
      * refactor manager usage
      
      * restrict request ID to u8
      
      * Update ws-client/src/tests.rs
      
      * rename `max_notifs_per_subscription_capacity`
      
      * Update tests/src/lib.rs
      
      * fix nits
      
      * address grumbles: vecdeq for free slots
      
      * resolve todo
      
      * [request manager]: add test for max limit.
      
      * Update ws-client/src/client.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * fix stack overflow
      
      * grumbles: MaxMemory -> MaxSlots
      
      * address grumbles: stray capacity on configs
      
      * Update types/src/client.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * grumbles: stray confusing docs
      
      * grumbles: doc nits
      
      * grumbles: remove nested if let
      
      Co-authored-by: default avatarDavid <[email protected]>
      09e7a4d6
  19. Mar 04, 2021
  20. Mar 02, 2021
    • Niklas Adolfsson's avatar
      feat: client trait + porting client proc macros (#199) · 50d8bf78
      Niklas Adolfsson authored
      
      
      * draft: client trait sketch...
      
      * use async_trait instead of `Box<Future>`
      
      * refactor client trait
      
      * [types]: shared client types.
      
      * integrate with `jsonrpsee_proc_macros::rpc_api`
      
      * Update proc-macros/src/lib.rs
      
      * integrate with proc macros
      
      * fix: hacky support for generic types in proc macro
      
      * fix: make the examples work.
      
      * trait: error associated type
      
      * Update types/src/traits.rs
      
      * client trait: make object safe.
      
      Make the trait usable as a trait object i.e, `Box<dyn Trait>`
      
      * client trait: remove `Self::Sized`
      
      * add tests for proc macros.
      
      * fix build
      
      * fmt
      
      * [client trait]: remove unused associated error typ
      
      * [proc macros]: separate enum variant each return_t
      
      * add tracking issue to `TODO`
      
      * doc(client trait): improve documentation.
      
      * separate trait for subscribing client
      
      * add documentation
      
      * proc macros: remove debug impl
      
      * fix compile warns
      
      * address grumbles: remove fn process_response
      
      * Update types/src/client.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * Update types/src/client.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * Update types/src/client.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * Update types/src/client.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * Update types/src/client.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * remove old proc macro tests
      
      * address grumbles: shorter lines
      
      Co-authored-by: default avatarDavid <[email protected]>
      50d8bf78
  21. Feb 18, 2021
    • Niklas Adolfsson's avatar
      [ws client]: add `wss` test + refactor `WebSocketTransport builder` (#209) · 1cdd1381
      Niklas Adolfsson authored
      * test(ws client): wss (TLS)
      
      * fix(ws client): bug replace target with host.
      
      * address review suggestions
      
      * tests: add tests for non-ascii URLs
      
      * refactor: impl TryFrom for WebSocketTransportBuild
      
      * fix nit: try to connect to all sockaddrs
      
      * document `Host type`
      
      * doc(ws client): default port.
      
      * remove helper function
      1cdd1381
  22. Feb 02, 2021
    • Niklas Adolfsson's avatar
      [ws client]: use `max_payload_size` in transport (#198) · 7dc9435e
      Niklas Adolfsson authored
      
      
      * fix examples
      
      * [ws client]: transport use `max_payload_size`
      
      * fix nits
      
      * fix more nits
      
      * Update ws-client/src/client.rs
      
      * fix doc tests
      
      * [ws client]: all transport config configurable
      
      * Update ws-client/src/client.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * Update ws-client/src/manager.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * address grumbles
      
      * grumbles: WsDnsError -> WsHandshakeError
      
      * grumbles: remove needless clone
      
      * fix lint: remove explicit lifetime
      
      * fix nits: channel capacity + docs
      
      * clippy nits
      
      * clippy nits
      
      * fix grumbles: channel capacity 256
      
      As Maciej pointed out the capacity is the number of messages (not bytes) and each message is 96 bytes.
      Thus, 256 * 96 = ~24kB which is reasonable default value.
      
      * Update ws-client/src/client.rs
      
      Co-authored-by: default avatarDavid <[email protected]>
      
      * grumbles: docs
      
      Co-authored-by: default avatarDavid <[email protected]>
      7dc9435e
  23. Jan 26, 2021
  24. 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