1. 25 Aug, 2021 1 commit
    • David's avatar
      Cleanup proc-macros (#438) · 68c39064
      David authored
      * Doc tweaks
      
      * More tweaks
      
      * Move proc macro code out of the "new" folder
      
      * fmt
      
      * Can't add doc-links to dev-dependencies
      68c39064
  2. 18 Aug, 2021 2 commits
    • 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
    • Maciej Hirsz's avatar
      872a8d7f
  3. 17 Aug, 2021 1 commit
    • 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
  4. 16 Aug, 2021 1 commit
    • 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
  5. 13 Aug, 2021 4 commits
  6. 09 Aug, 2021 1 commit
  7. 05 Aug, 2021 1 commit
    • Niklas Adolfsson's avatar
      fix(ws client): use query part of URL. (#429) · 430dcfaf
      Niklas Adolfsson authored
      * fix(ws client): use query part of URL.
      
      Fixes #428, we didn't take that query part of the URL into account and it wasn't sent in GET request.
      
      * add log when connecting to a target
      
      * fix(grumbles): path -> path_and_query
      430dcfaf
  8. 27 Jul, 2021 1 commit
    • 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
  9. 15 Jul, 2021 1 commit
  10. 12 Jul, 2021 5 commits
    • David's avatar
      Prepare v0.3.0 (#415) · 0f66093e
      David authored
      * Bump versions to 0.3.0
      
      * Add draft release checklist
      
      * Changelog for v0.3.0
      
      * Mention possibility of passing params to `publish.sh`
      
      * Added PR 412
      v0.3.0
      0f66093e
    • 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: David's avatarDavid <dvdplm@gmail.com>
      
      Co-authored-by: David's avatarDavid Palm <dvdplm@gmail.com>
      8db65b42
    • David's avatar
      Sort out type paths in proc macros (#414) · b8af4cc0
      David authored
      * Only return the crate name when the crate is `jsonrpsee` as well
      
      * Sort out the type paths in the macros, this time for real (?)
      
      * fmt
      b8af4cc0
    • David's avatar
      Fix type paths for client macros (#413) · b83be742
      David authored
      * type paths in client macros
      
      * Tweak more paths
      
      * Helpers as well
      b83be742
    • 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
  11. 10 Jul, 2021 1 commit
    • 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 <hello@maciej.codes>
      d5d67e98
  12. 08 Jul, 2021 1 commit
  13. 01 Jul, 2021 3 commits
    • Igor Aleksanov's avatar
      New proc macro (#387) · ddb50806
      Igor Aleksanov authored
      
      
      * Start working on the new proc macro system
      
      * Add skeleton for rendering
      
      * Improve error reporting
      
      * Main part of 'render_client'
      
      * Implement RPC client generation
      
      * Client successfully rendered
      
      * Add doc-comment generation for the API client
      
      * Check that all the methods have receiver
      
      * Start working on the server impl
      
      * Add helper method to find server crate
      
      * Fix usage of client rpc path
      
      * Decent progress on the server macro implementation
      
      * Server macro compiled successfully
      
      * Remove unneeded re-export
      
      * Insert SubscriptionSink argument to the subscription server signatures
      
      * Add basic doc-comment for the macro
      
      * no_run -> ignore
      
      * Trait with subscription compiles
      
      * Extend the example
      
      * Add integration test for client/server impl
      
      * Add trybuild setup
      
      * Set correct span for attribute parsing related errors
      
      * Add basic set of trybuild tests
      
      * Add tests for client and server generated separately
      
      * Improve proc-macro documentation
      
      * Update proc-macros/src/lib.rs
      
      Co-authored-by: Niklas Adolfsson's avatarNiklas Adolfsson <niklasadolfsson1@gmail.com>
      
      * Fix a couple of bugs in docs
      
      * Fix rendering subscription with params
      
      Co-authored-by: Niklas Adolfsson's avatarNiklas Adolfsson <niklasadolfsson1@gmail.com>
      ddb50806
    • Maciej Hirsz's avatar
      Streaming RpcParams parsing (#401) · 095db9b2
      Maciej Hirsz authored
      * Streaming RpcParams parsing
      
      * DRY RpcParams::one again
      
      * Fix doc comments
      095db9b2
    • Maciej Hirsz's avatar
      Set allowed Host header values (#399) · f705e325
      Maciej Hirsz authored
      
      
      * Set allowed Host header values
      
      * Error if allowed hosts list is empty
      
      * Grammar
      
      Co-authored-by: David's avatarDavid <dvdplm@gmail.com>
      
      Co-authored-by: David's avatarDavid <dvdplm@gmail.com>
      f705e325
  14. 30 Jun, 2021 2 commits
    • Maciej Hirsz's avatar
      Synchronization-less async connections in ws-server (#388) · 7496afe2
      Maciej Hirsz authored
      * WIP
      
      * More WIP
      
      * Simplify ConnDriver
      
      * Progress all connections on each poll
      
      * Make ConnDriver more opaque and less leaky
      
      * fmt
      
      * Spawn connections on tasks after handshake
      
      * WIP put connections on tasks
      
      * cargo fmt, naming clarity
      
      * Fix grumbles
      
      * Extra comment on swap_remove
      
      * Remove unwrap from the handshake
      
      * Restore the wrapping_add on connection id
      7496afe2
    • 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: David's avatarDavid <dvdplm@gmail.com>
      
      * correct subscription err messages
      
      Co-authored-by: David's avatarDavid <dvdplm@gmail.com>
      7a33bf50
  15. 29 Jun, 2021 1 commit
  16. 25 Jun, 2021 1 commit
    • Niklas Adolfsson's avatar
      [ci]: test each individual crate's manifest (#392) · 2ca8355a
      Niklas Adolfsson authored
      * [ci]: test each crate outside workspace
      
      We have bitten by these a few times now with that some features are leaked from the workspace
      which makes it compile in the workspace but not using it's own Cargo.toml.
      
      * [ci]: add tests for macos and windows
      
      * add missed `WsServer` and `HttpServer`
      
      * [ws server]: fix features
      
      * debug failure in CI
      
      * remove platform dependent assertion
      
      * fix nit; proc-macros is proc-macros
      
      * restore removed assertion
      
      * remove whitespaces
      2ca8355a
  17. 24 Jun, 2021 2 commits
  18. 23 Jun, 2021 1 commit
  19. 18 Jun, 2021 2 commits
    • Maciej Hirsz's avatar
      Cross-origin protection (#375) · 26b06136
      Maciej Hirsz authored
      * Initial implementation
      
      * Comments
      
      * Send a 403 on denied origin
      
      * Noodling around with `set_allowed_origins`
      
      * Error on empty list
      
      * Soketto 0.6
      
      * fmt
      
      * Add `Builder::allow_all_origins`, clarify doc comments
      
      * Rename Cors -> AllowedOrigins, nits, no panic
      26b06136
    • Maciej Hirsz's avatar
      Method aliases + RpcModule: Clone (#383) · 6c69a8c0
      Maciej Hirsz authored
      
      
      * Make sync methods into Arc pointers
      
      * impl Clone for RpcModule and Methods
      
      * No need to wrap Methods in Arc anymore
      
      * Simplify generics
      
      * register_alias
      
      * fmt
      
      * grammar
      
      Co-authored-by: James Wilson's avatarJames Wilson <james@jsdw.me>
      
      * Use a separate Arc counter for tracking max_connections
      
      Co-authored-by: James Wilson's avatarJames Wilson <james@jsdw.me>
      6c69a8c0
  20. 16 Jun, 2021 1 commit
  21. 14 Jun, 2021 1 commit
  22. 10 Jun, 2021 1 commit
  23. 08 Jun, 2021 1 commit
  24. 07 Jun, 2021 1 commit
  25. 04 Jun, 2021 3 commits