Skip to content

Commit eaebc26

Browse files
feat: Introduce in-process channel transport for zero-overhead MCP communication, including new TransportType::Channel and channel feature, and bump all crates to v3.0.1.
1 parent ec6bb52 commit eaebc26

File tree

29 files changed

+93
-81
lines changed

29 files changed

+93
-81
lines changed

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [3.0.1] - 2026-03-05
11+
12+
### Added
13+
14+
- **In-process channel transport** - Zero-overhead `channel` transport using `tokio::sync::mpsc` channels for same-process MCP communication. Eliminates line framing, flushing, and redundant JSON parsing. 1.4x faster than rmcp on tool call latency (14μs vs 19μs), 1.2x higher throughput (71k rps vs 59k rps).
15+
- **`TransportType::Channel` variant** - Added `Channel` to both `turbomcp-core` and `turbomcp-transport-traits` `TransportType` enums, with `is_local()` classification and proper `Display`/serde support.
16+
- **`RequestContext::channel()` factory** - Convenience constructor for channel transport contexts in `turbomcp-server`.
17+
- **`channel` feature flag** - New feature on `turbomcp-server` and `turbomcp` crates, included in `all-transports` bundle.
18+
19+
### Fixed
20+
21+
- **Channel transport type identification** - `ChannelTransport::transport_type()` now correctly returns `TransportType::Channel` instead of `TransportType::Stdio`.
22+
1023
## [3.0.0] - 2026-03-03
1124

1225
### Added

Cargo.toml

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -200,35 +200,35 @@ doc-comment = "0.3"
200200
#
201201
# All other crates either have empty defaults (removed vestigial `default-features = false`)
202202
# or useful defaults that should be enabled by default.
203-
turbomcp = { version = "3.0.0", path = "crates/turbomcp" }
203+
turbomcp = { version = "3.0.1", path = "crates/turbomcp" }
204204
# v3.0: turbomcp-types is THE source of truth for all MCP types
205-
turbomcp-types = { version = "3.0.0", path = "crates/turbomcp-types" }
205+
turbomcp-types = { version = "3.0.1", path = "crates/turbomcp-types" }
206206
# v3.0: turbomcp-core re-extracted as no_std foundation layer
207-
turbomcp-core = { version = "3.0.0", path = "crates/turbomcp-core", default-features = false }
207+
turbomcp-core = { version = "3.0.1", path = "crates/turbomcp-core", default-features = false }
208208
# v3.0: turbomcp-transport-traits lean transport traits crate
209-
turbomcp-transport-traits = { version = "3.0.0", path = "crates/turbomcp-transport-traits" }
209+
turbomcp-transport-traits = { version = "3.0.1", path = "crates/turbomcp-transport-traits" }
210210
# v3.0: Individual transport crates (extracted from monolithic turbomcp-transport)
211-
turbomcp-stdio = { version = "3.0.0", path = "crates/turbomcp-stdio" }
212-
turbomcp-http = { version = "3.0.0", path = "crates/turbomcp-http" }
213-
turbomcp-websocket = { version = "3.0.0", path = "crates/turbomcp-websocket" }
214-
turbomcp-tcp = { version = "3.0.0", path = "crates/turbomcp-tcp" }
215-
turbomcp-unix = { version = "3.0.0", path = "crates/turbomcp-unix" }
216-
turbomcp-protocol = { version = "3.0.0", path = "crates/turbomcp-protocol" }
217-
turbomcp-transport = { version = "3.0.0", path = "crates/turbomcp-transport", default-features = false }
218-
turbomcp-client = { version = "3.0.0", path = "crates/turbomcp-client" }
219-
turbomcp-server = { version = "3.0.0", path = "crates/turbomcp-server" }
220-
turbomcp-macros = { version = "3.0.0", path = "crates/turbomcp-macros" }
221-
turbomcp-cli = { version = "3.0.0", path = "crates/turbomcp-cli" }
222-
turbomcp-telemetry = { version = "3.0.0", path = "crates/turbomcp-telemetry" }
223-
turbomcp-auth = { version = "3.0.0", path = "crates/turbomcp-auth" }
224-
turbomcp-dpop = { version = "3.0.0", path = "crates/turbomcp-dpop" }
225-
turbomcp-proxy = { version = "3.0.0", path = "crates/turbomcp-proxy" }
226-
turbomcp-grpc = { version = "3.0.0", path = "crates/turbomcp-grpc" }
227-
turbomcp-openapi = { version = "3.0.0", path = "crates/turbomcp-openapi" }
228-
turbomcp-wire = { version = "3.0.0", path = "crates/turbomcp-wire", default-features = false }
229-
turbomcp-wasm = { version = "3.0.0", path = "crates/turbomcp-wasm" }
230-
turbomcp-wasm-macros = { version = "3.0.0", path = "crates/turbomcp-wasm-macros" }
231-
turbomcp-transport-streamable = { version = "3.0.0", path = "crates/turbomcp-transport-streamable", default-features = false }
211+
turbomcp-stdio = { version = "3.0.1", path = "crates/turbomcp-stdio" }
212+
turbomcp-http = { version = "3.0.1", path = "crates/turbomcp-http" }
213+
turbomcp-websocket = { version = "3.0.1", path = "crates/turbomcp-websocket" }
214+
turbomcp-tcp = { version = "3.0.1", path = "crates/turbomcp-tcp" }
215+
turbomcp-unix = { version = "3.0.1", path = "crates/turbomcp-unix" }
216+
turbomcp-protocol = { version = "3.0.1", path = "crates/turbomcp-protocol" }
217+
turbomcp-transport = { version = "3.0.1", path = "crates/turbomcp-transport", default-features = false }
218+
turbomcp-client = { version = "3.0.1", path = "crates/turbomcp-client" }
219+
turbomcp-server = { version = "3.0.1", path = "crates/turbomcp-server" }
220+
turbomcp-macros = { version = "3.0.1", path = "crates/turbomcp-macros" }
221+
turbomcp-cli = { version = "3.0.1", path = "crates/turbomcp-cli" }
222+
turbomcp-telemetry = { version = "3.0.1", path = "crates/turbomcp-telemetry" }
223+
turbomcp-auth = { version = "3.0.1", path = "crates/turbomcp-auth" }
224+
turbomcp-dpop = { version = "3.0.1", path = "crates/turbomcp-dpop" }
225+
turbomcp-proxy = { version = "3.0.1", path = "crates/turbomcp-proxy" }
226+
turbomcp-grpc = { version = "3.0.1", path = "crates/turbomcp-grpc" }
227+
turbomcp-openapi = { version = "3.0.1", path = "crates/turbomcp-openapi" }
228+
turbomcp-wire = { version = "3.0.1", path = "crates/turbomcp-wire", default-features = false }
229+
turbomcp-wasm = { version = "3.0.1", path = "crates/turbomcp-wasm" }
230+
turbomcp-wasm-macros = { version = "3.0.1", path = "crates/turbomcp-wasm-macros" }
231+
turbomcp-transport-streamable = { version = "3.0.1", path = "crates/turbomcp-transport-streamable", default-features = false }
232232

233233
[profile.dev]
234234
opt-level = 1

crates/turbomcp-auth/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "turbomcp-auth"
33

4-
version = "3.0.0"
4+
version = "3.0.1"
55

66
edition = "2024"
77
authors = ["Nicholas Paterno <nick@epistates.com>"]

crates/turbomcp-cli/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "turbomcp-cli"
33

4-
version = "3.0.0"
4+
version = "3.0.1"
55

66
edition = "2024"
77
authors = ["Nicholas Paterno <nick@epistates.com>"]

crates/turbomcp-client/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "turbomcp-client"
33

4-
version = "3.0.0"
4+
version = "3.0.1"
55

66
edition = "2024"
77
authors = ["Nicholas Paterno <nick@epistates.com>"]

crates/turbomcp-core/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "turbomcp-core"
3-
version = "3.0.0"
3+
version = "3.0.1"
44
edition = "2024"
55
authors = ["Nicholas Paterno <nick@epistates.com>"]
66
description = "Core MCP types and primitives - no_std compatible for WASM targets"

crates/turbomcp-dpop/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "turbomcp-dpop"
33

4-
version = "3.0.0"
4+
version = "3.0.1"
55

66
edition = "2024"
77
authors = ["Nicholas Paterno <nick@epistates.com>"]

crates/turbomcp-grpc/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "turbomcp-grpc"
3-
version = "3.0.0"
3+
version = "3.0.1"
44
edition = "2024"
55
authors = ["Nicholas Paterno <nick@epistates.com>"]
66
description = "gRPC transport for TurboMCP - high-performance MCP over HTTP/2"
@@ -28,9 +28,9 @@ tokio-stream = { version = "0.1", features = ["net"] }
2828
futures = "0.3"
2929

3030
# Internal dependencies
31-
turbomcp-core = { version = "3.0.0", path = "../turbomcp-core", default-features = false, features = ["std"] }
32-
turbomcp-protocol = { version = "3.0.0", path = "../turbomcp-protocol", default-features = false }
33-
turbomcp-transport-traits = { version = "3.0.0", path = "../turbomcp-transport-traits", default-features = false }
31+
turbomcp-core = { version = "3.0.1", path = "../turbomcp-core", default-features = false, features = ["std"] }
32+
turbomcp-protocol = { version = "3.0.1", path = "../turbomcp-protocol", default-features = false }
33+
turbomcp-transport-traits = { version = "3.0.1", path = "../turbomcp-transport-traits", default-features = false }
3434

3535
# Tower integration
3636
tower = { workspace = true }

crates/turbomcp-http/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "turbomcp-http"
3-
version = "3.0.0"
3+
version = "3.0.1"
44
edition = "2024"
55
authors = ["Nicholas Paterno <nick@epistates.com>"]
66
description = "HTTP/SSE transport implementation for MCP (Model Context Protocol) - Client transport"

crates/turbomcp-macros/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "turbomcp-macros"
3-
version = "3.0.0"
3+
version = "3.0.1"
44
edition = "2024"
55
description = "Procedural macros for ergonomic MCP tool and resource registration"
66
license = "MIT"
@@ -33,8 +33,8 @@ schemars = { version = "1.0" }
3333
axum = { workspace = true, optional = true }
3434
tokio = { workspace = true, optional = true }
3535

36-
turbomcp-protocol = { version = "3.0.0", path = "../turbomcp-protocol" }
37-
turbomcp-transport = { version = "3.0.0", path = "../turbomcp-transport", optional = true }
36+
turbomcp-protocol = { version = "3.0.1", path = "../turbomcp-protocol" }
37+
turbomcp-transport = { version = "3.0.1", path = "../turbomcp-transport", optional = true }
3838

3939
[dev-dependencies]
4040
trybuild = "1.0"

0 commit comments

Comments
 (0)