Describe the bug
The rmcp crate depends on process-wrap v8.2.1, which uses the TokioCommandWrap struct. However, process-wrap v9.0.0 has
renamed this to CommandWrap. This causes dependency conflicts when users need to use process-wrap v9.0.0 directly in
their projects alongside rmcp.
To Reproduce
- Add rmcp v0.11.0 to your Cargo.toml with transport features:
rmcp = { version = "0.11.0", features = ["client", "transport-child-process"] }
- Add process-wrap v9.0.0 directly to use its API:
process-wrap = { version = "9.0.0", features = ["tokio1"] }
- Try to use TokioCommandWrap from process-wrap:
use process_wrap::tokio::TokioCommandWrap;
- Run cargo check
Expected behavior
rmcp should depend on process-wrap v9.0.0 so that:
- There is only one version of process-wrap in the dependency tree
- Users can use the current process-wrap API (CommandWrap) without version conflicts
- Type compatibility is maintained when passing wrapped commands to rmcp's transport layer
Logs
error[E0432]: unresolved import process_wrap::tokio::TokioCommandWrap
--> src/tools/mcp/transport.rs:6:5
|
6 | use process_wrap::tokio::TokioCommandWrap;
| ^^^^^^^^^^^^^^^^^^^^^----------------
| | |
| | help: a similar name exists in the module: CommandWrap
| no TokioCommandWrap in tokio
Dependency tree shows two versions:
process-wrap v8.2.1
└── rmcp v0.11.0
└── my-project
process-wrap v9.0.0
└── my-project