Skip to main content

dcp/
lib.rs

1//! DCP (Development Context Protocol)
2//!
3//! A binary-first protocol designed to replace MCP (Model Context Protocol)
4//! with 10-1000x performance improvements while maintaining backward compatibility.
5
6pub mod bench;
7pub mod binary;
8pub mod capability;
9pub mod cli;
10pub mod compat;
11pub mod context;
12pub mod dispatch;
13pub mod error;
14pub mod multiplex;
15pub mod observability;
16pub mod protocol;
17pub mod reactor;
18pub mod resource;
19pub mod security;
20pub mod server;
21pub mod shutdown;
22pub mod stream;
23pub mod sync;
24pub mod transport;
25
26pub use bench::{
27    compare_sizes_auto, estimate_binary_size, measure_dcp_size, measure_json_rpc_size,
28    SizeComparison,
29};
30pub use capability::CapabilityManifest;
31pub use cli::{convert_mcp_to_dcp, DcpSchema, McpSchema};
32pub use compat::{
33    JsonRpcError, JsonRpcParser, JsonRpcRequest, JsonRpcResponse, McpAdapter, SseTransport,
34    StdioTransport,
35};
36pub use context::{ContextLayout, DcpContext, ToolState};
37pub use dispatch::ServerCapabilities;
38pub use error::{DCPError, SecurityError};
39pub use multiplex::{
40    MultiplexError, MultiplexedConnection, PipelinedClient, RequestPipeline, StreamFlags,
41    StreamHeader, StreamState, StreamStatus, MAX_STREAMS, STREAM_HEADER_SIZE,
42};
43pub use observability::{
44    create_span, init_tracing, LogConfig, LogEntry, LogFormat, LogLevel, MetricsConfig,
45    PrometheusMetrics, RequestMetrics, RequestSpan, Span, SpanKind, SpanStatus, StructuredLogger,
46    Tracer, TracingConfig,
47};
48pub use reactor::{
49    create_default_reactor, create_reactor, Completion, EpollReactor, Event, Interest,
50    IoUringReactor, IocpReactor, KqueueReactor, RawFd, Reactor, ReactorConfig, Token,
51};
52pub use resource::{
53    ResourceContent, ResourceError, ResourceHandler, ResourceInfo, ResourceList, ResourceRegistry,
54    SubscriptionId,
55};
56pub use server::{
57    DcpServer, Metrics, MetricsSnapshot, ProtocolVersion, ServerConfig, ServerInfo, Session,
58};
59pub use shutdown::{
60    setup_default_handlers, wait_for_ctrl_c, RequestGuard, ShutdownCoordinator, ShutdownLogger,
61    ShutdownProgress, Signal, SignalHandler,
62};
63pub use transport::{
64    Connection, FrameCodec, FrameError, FrameHeader, ProtocolMode, TcpConfig, TcpServer, TlsConfig,
65    TlsVersion, MAX_MESSAGE_SIZE, PROTOCOL_VERSION,
66};