plexus_core/lib.rs
1//! Hub Core - Core infrastructure for building Plexus RPC servers
2//!
3//! This crate provides:
4//! - `DynamicHub` - Dynamic routing hub for activations (implements Plexus RPC protocol)
5//! - `Activation` - Trait for implementing activations
6//! - `PlexusMcpBridge` - MCP server integration
7//! - `Handle` - Typed references to activation method results
8//!
9//! # Example
10//!
11//! ```rust,no_run
12//! use plexus_core::plexus::DynamicHub;
13//! use plexus_core::activations::echo::Echo;
14//! use plexus_core::activations::health::Health;
15//! use std::sync::Arc;
16//!
17//! let hub = Arc::new(
18//! DynamicHub::new("myapp")
19//! .register(Health::new())
20//! .register(Echo::new())
21//! );
22//! ```
23
24pub mod activations;
25pub mod builder;
26pub mod mcp_bridge;
27pub mod plexus;
28pub mod plugin_system;
29pub mod request;
30pub mod serde_helpers;
31pub mod types;
32
33// Re-export commonly used items
34pub use builder::build_example_hub;
35pub use mcp_bridge::PlexusMcpBridge;
36pub use plexus::{Activation, DynamicHub, PlexusError, PLEXUS_NOTIF_METHOD};
37pub use types::{Envelope, Handle, HandleParseError, HandleResolutionParams, Origin};
38
39// Re-export schemars under a stable private path so PlexusRequest derive-generated code
40// can reference the real schemars::JsonSchema trait without requiring the caller to have
41// schemars in their own dependencies.
42#[doc(hidden)]
43pub use schemars as __schemars;
44
45// Proc-macro re-exports.
46// Use as `plexus_core::activation` / `plexus_core::method`, or via a
47// `plexus = { package = "plexus-core" }` Cargo alias as `plexus::activation` / `plexus::method`.
48pub use plexus_macros::activation;
49pub use plexus_macros::method;
50#[allow(deprecated)]
51#[deprecated(since = "0.5.0", note = "Use `plexus_core::activation` instead")]
52pub use plexus_macros::hub_methods;
53#[allow(deprecated)]
54#[deprecated(since = "0.5.0", note = "Use `plexus_core::method` instead")]
55pub use plexus_macros::hub_method;