[package]
edition = "2021"
rust-version = "1.78"
name = "messaggero"
version = "0.1.1"
authors = ["Cristiano Cuttica <cristiano.cuttica@yahoo.it>"]
build = false
exclude = [
"demos/**",
".github/**",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-performance agent-to-agent communication protocol for Rust. A2A-compatible over HTTP/JSON-RPC with a zero-overhead binary fast path over Unix sockets for local multi-agent systems."
homepage = "https://github.com/mioCry/messaggero"
documentation = "https://docs.rs/messaggero"
readme = "README.md"
keywords = [
"agents",
"a2a",
"ai",
"async",
"protocol",
]
categories = [
"network-programming",
"asynchronous",
"concurrency",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/mioCry/messaggero"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
a2a = [
"dep:axum",
"dep:reqwest",
]
default = [
"fast",
"a2a",
]
fast = []
full = [
"fast",
"a2a",
"transport-log",
]
transport-log = []
[lib]
name = "messaggero"
path = "src/lib.rs"
[[example]]
name = "multi_agent"
path = "examples/multi_agent.rs"
[[example]]
name = "ping_pong"
path = "examples/ping_pong.rs"
[[test]]
name = "fast_transport"
path = "tests/fast_transport.rs"
[[test]]
name = "middleware"
path = "tests/middleware.rs"
[[test]]
name = "types"
path = "tests/types.rs"
[[bench]]
name = "fast_transport"
path = "benches/fast_transport.rs"
harness = false
[[bench]]
name = "serialization"
path = "benches/serialization.rs"
harness = false
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.8"
optional = true
[dependencies.bincode]
version = "1"
[dependencies.bytes]
version = "1"
[dependencies.futures-util]
version = "0.3"
features = ["sink"]
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"rustls-tls",
"stream",
]
optional = true
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tokio-util]
version = "0.7"
features = ["codec"]
[dependencies.tracing]
version = "0.1"
[dependencies.uuid]
version = "=1.11.0"
features = [
"v4",
"serde",
]
[dev-dependencies.criterion]
version = "0.5"
features = ["async_tokio"]
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]