turbomcp_client/client/
mod.rs

1//! MCP client core implementation
2//!
3//! This module contains the decomposed client implementation with focused
4//! modules for different responsibilities:
5//!
6//! - `core`: Main `Client<T>` implementation and connection management
7//! - `protocol`: ProtocolClient for JSON-RPC communication
8//! - `dispatcher`: Message routing for bidirectional communication
9//! - `config`: Configuration types and utilities
10//! - `builder`: ClientBuilder pattern for construction
11//! - `operations`: MCP operations (tools, resources, prompts, etc.)
12//! - `systems`: Supporting systems (handlers, plugins, connection)
13//!
14//! Note: `Client<T>` is now cloneable via `Arc<ClientInner<T>>` - no need for SharedClient!
15
16// Core modules
17pub(crate) mod config;
18pub(crate) mod core;
19mod dispatcher;
20mod manager;
21mod protocol;
22mod tasks_test;
23
24// Operations modules
25pub mod operations;
26
27// Design Note: Module decomposition is complete for 2.0.0
28//
29// The client module is decomposed into focused submodules:
30// - config: Connection and initialization configuration
31// - core: Core client implementation
32// - manager: Session and connection management
33// - operations: MCP operation implementations (tools, prompts, resources)
34// - protocol: Protocol-level communication
35//
36// Further decomposition (builder, shared, systems) is not currently needed.
37// The current structure balances cohesion and simplicity.
38
39// Re-export main types for backwards compatibility
40pub use config::{ConnectionConfig, InitializeResult};
41pub use manager::{ConnectionInfo, ConnectionState, ManagerConfig, ServerGroup, SessionManager};