-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
105 lines (93 loc) · 3.65 KB
/
Copy pathCargo.toml
File metadata and controls
105 lines (93 loc) · 3.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# SPDX-License-Identifier: Apache-2.0
# Copyright 2026 Tom F. <tomf@tomtomtech.net> (https://github.com/tomtom215)
[workspace]
# "3" is the edition-2024 resolver: MSRV-aware, so `cargo update` selects
# dependency versions compatible with `rust-version` below.
resolver = "3"
members = [
"crates/a2a-protocol-types",
"crates/a2a-protocol-client",
"crates/a2a-protocol-server",
"crates/a2a-protocol-sdk",
"examples/harness",
"examples/hello-agent",
"examples/deploy-agent",
"examples/echo-agent",
"examples/agent-team",
"examples/multi-lang-team",
"examples/rig-agent",
"examples/genai-agent",
"examples/incident-response",
"examples/mcp-agent",
"examples/mcp-bridge",
"examples/resilient-agent",
"benches",
"book-tests",
"tck",
"tck/sut",
"tools/a2a-cli",
]
[workspace.package]
edition = "2024"
rust-version = "1.88"
license = "Apache-2.0"
authors = ["Tom F."]
repository = "https://github.com/tomtom215/a2a-rust"
homepage = "https://a2a-rust.com"
documentation = "https://docs.rs/a2a-protocol-sdk"
keywords = ["a2a", "agent2agent", "agent", "protocol", "ai"]
categories = ["network-programming", "web-programming", "api-bindings"]
[workspace.dependencies]
# Protocol types
serde = { version = ">=1.0.200, <2", features = ["derive"] }
serde_json = { version = ">=1.0.115, <2" }
# Async runtime
tokio = { version = ">=1.38, <2", features = ["rt", "net", "io-util", "sync", "time", "macros"] }
# HTTP stack
hyper = { version = ">=1.4, <2", features = ["client", "server", "http1", "http2"] }
http-body-util = { version = ">=0.1, <0.2" }
hyper-util = { version = ">=0.1.6, <0.2", features = ["client", "client-legacy", "http1", "http2", "tokio"] }
# IDs
uuid = { version = ">=1.8, <2", features = ["v4"] }
# Observability (optional)
tracing = { version = ">=0.1.40, <0.2" }
# Test-only: capture emitted tracing events so log-only branches are assertable.
tracing-subscriber = { version = ">=0.3.18, <0.4", default-features = false, features = ["fmt", "std"] }
# gRPC (optional — behind `grpc` feature flag)
tonic = { version = "0.14" }
prost = { version = "0.14" }
prost-types = { version = "0.14" }
prost-build = { version = "0.14" }
tonic-build = { version = "0.14" }
tonic-prost = { version = "0.14" }
tonic-prost-build = { version = "0.14" }
tonic-types = { version = "0.14" }
tokio-stream = { version = "0.1" }
# Ships prebuilt `protoc` binaries for linux/{x86,aarch64}, macos/{x86,aarch64},
# and windows x86_64. Used by the grpc-feature build scripts so that contributors
# and CI runners do not need to install protobuf-compiler manually — a clean
# `cargo build --features grpc` works out of the box.
protoc-bin-vendored = { version = "3" }
# RFC 3339 timestamp parsing/formatting for the protobuf conversion layer
# (google.protobuf.Timestamp ⇄ ISO 8601 strings). Optional, `proto` feature only.
time = { version = "0.3", default-features = false, features = ["parsing", "formatting"] }
# SQLite (optional — behind `sqlite` feature flag)
[workspace.dependencies.sqlx]
version = "0.8"
default-features = false
features = ["runtime-tokio", "sqlite"]
[workspace.dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[profile.release]
panic = "abort"
lto = true
opt-level = 3
codegen-units = 1
strip = true
# Build profile for cargo-mutants (selected via `profile = "mutants"` in
# mutants.toml). Mutant runs rebuild + relink the mutated crate hundreds of
# times; debuginfo dominates that cost and is useless there.
[profile.mutants]
inherits = "dev"
debug = "none"