ash-rpc 4.0.1

A comprehensive JSON-RPC 2.0 implementation with multiple transport layers and advanced features
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
name = "ash-rpc"
version = "4.0.1"
authors = ["Giorgos Ntemiris <ntemirisgiorgos3@gmail.com>"]
build = false
exclude = [
    "examples/",
    "fuzz",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A comprehensive JSON-RPC 2.0 implementation with multiple transport layers and advanced features"
homepage = "https://github.com/ashforge-rs/ash-rpc"
documentation = "https://docs.rs/ash-rpc"
readme = "README.md"
keywords = [
    "json-rpc",
    "rpc",
    "json",
    "tcp",
    "async",
]
categories = [
    "network-programming",
    "web-programming",
    "asynchronous",
]
license = "Apache-2.0"
repository = "https://github.com/ashforge-rs/ash-rpc"

[features]
audit-logging = []
axum = [
    "dep:axum",
    "tokio",
]
default = []
healthcheck = []
logging = []
observability = [
    "logging",
    "prometheus",
    "opentelemetry",
]
opentelemetry = [
    "dep:opentelemetry",
    "dep:opentelemetry-otlp",
    "dep:opentelemetry_sdk",
]
prometheus = ["dep:prometheus"]
shutdown = ["tokio"]
stateful = []
streaming = ["tokio"]
tcp = ["tokio"]
tcp-stream = ["tokio"]
tcp-stream-tls = [
    "tokio",
    "tokio-rustls",
]
tower = ["dep:tower"]

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

[dependencies.async-trait]
version = "0.1"

[dependencies.axum]
version = "0.8"
optional = true

[dependencies.opentelemetry]
version = "0.31"
optional = true

[dependencies.opentelemetry-otlp]
version = "0.31"
features = [
    "tonic",
    "metrics",
    "trace",
]
optional = true

[dependencies.opentelemetry_sdk]
version = "0.31"
features = ["rt-tokio"]
optional = true

[dependencies.prometheus]
version = "0.14"
features = ["process"]
optional = true

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

[dependencies.serde_json]
version = "1.0"

[dependencies.tokio]
version = "1.47"
features = [
    "net",
    "io-util",
    "rt",
    "rt-multi-thread",
    "sync",
    "macros",
    "time",
    "signal",
]
optional = true

[dependencies.tokio-rustls]
version = "0.26"
optional = true

[dependencies.tower]
version = "0.5"
optional = true

[dependencies.tracing]
version = "0.1"

[dependencies.uuid]
version = "1.0"
features = [
    "v4",
    "serde",
]

[dev-dependencies.chrono]
version = "0.4"

[dev-dependencies.dashmap]
version = "6.1"

[dev-dependencies.http-body-util]
version = "0.1"

[dev-dependencies.hyper]
version = "1.8"
features = ["full"]

[dev-dependencies.hyper-util]
version = "0.1"
features = ["full"]

[dev-dependencies.rand]
version = "0.9"

[dev-dependencies.tokio]
version = "1.47"
features = ["full"]

[dev-dependencies.tower]
version = "0.5"

[dev-dependencies.tracing-subscriber]
version = "0.3"
features = [
    "fmt",
    "env-filter",
]

[dev-dependencies.uuid]
version = "1.18"
features = ["v4"]