[package] name = "jsonrpc-utils" version = "0.2.6" edition = "2021" license = "MIT" repository = "https://github.com/sopium/jsonrpc-utils" description = "Alternative pub/sub and server implementations for jsonrpc-core" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [workspace] # This enables example scraping for all examples. [[example]] name = "openrpc" doc-scrape-examples = true [features] server = ["dep:tokio", "dep:futures-core", "dep:futures-util", "dep:hex", "dep:rand"] axum = ["dep:axum", "server"] macros = ["dep:jsonrpc-utils-macros", "dep:anyhow"] client = ["reqwest", "dep:anyhow"] blocking-client = ["reqwest/blocking", "dep:anyhow"] [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"] [dependencies] jsonrpc-utils-macros = { path = "./jsonrpc-utils-macros", version = "=0.2.4", optional = true } axum = { version = "0.6", features = ["ws"], optional = true } futures-core = { version = "0.3.21", optional = true } futures-util = { version = "0.3.21", optional = true } hex = { version = "0.4.3", optional = true } jsonrpc-core = "18.0.0" pin-project-lite = "0.2.9" rand = { version = "0.8.5", optional = true } tokio = { version = "1.19.0", features = ["sync", "macros", "time", "rt"], optional = true } serde_json = { version = "1.0.81", features = ["raw_value"] } reqwest = { version = "0.11.11", optional = true, default-features = false } anyhow = { version = "1.0.57", optional = true } [dev-dependencies] async-stream = "0.3.3" tokio = { version = "1.19.0", features = ["rt-multi-thread"] } tokio-stream = { version = "0.1.9", features = ["sync"] } tokio-util = { version = "0.7.3", features = ["codec"] } async-trait = "0.1.56" schemars = "0.8.12" serde = { version = "1.0.156", features = ["derive"] } tower-http = { version = "0.4.0", features = ["cors"] }