multi-rpc 0.2.0

Define a Rust service trait once and serve it simultaneously over multiple RPC protocols like Tarpc, REST/Axum, and JSON-RPC.
Documentation
[dependencies.axum]
optional = true
version = "0.7.9"

[dependencies.futures]
version = "0.3.31"

[dependencies.jsonrpsee]
features = ["server", "macros"]
optional = true
version = "0.26.0"

[dependencies.multi-rpc-macros]
default-features = false
version = "0.2.0"

[dependencies.serde]
features = ["derive"]
version = "1.0.228"

[dependencies.serde_json]
features = ["arbitrary_precision"]
version = "1.0.145"

[dependencies.tarpc]
features = ["full"]
optional = true
version = "0.37.0"

[dependencies.thiserror]
version = "1.0.69"

[dependencies.tokio]
features = ["full"]
version = "1.47.1"

[dependencies.trait-variant]
version = "0.1.2"

[features]
default = []
jsonrpsee = ["dep:jsonrpsee", "multi-rpc-macros/jsonrpsee"]
rest-axum = ["dep:axum", "multi-rpc-macros/rest-axum"]
tarpc = ["dep:tarpc", "multi-rpc-macros/tarpc"]

[lib]
name = "multi_rpc"
path = "src/lib.rs"

[package]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["network-programming", "web-programming"]
description = "Define a Rust service trait once and serve it simultaneously over multiple RPC protocols like Tarpc, REST/Axum, and JSON-RPC."
edition = "2021"
homepage = "https://github.com/dan-da/multi-rpc"
keywords = ["rpc", "axum", "tarpc", "json-rpc", "macros"]
license = "Apache-2.0"
name = "multi-rpc"
readme = "README.md"
repository = "https://github.com/dan-da/multi-rpc"
version = "0.2.0"