Expand description
§OrchFlow Core
A transport-agnostic orchestration engine for managing terminal sessions, panes, and plugins with an event-driven architecture.
§Architecture
The core is designed to be independent of any specific UI framework or transport mechanism. It provides:
- Manager: The main orchestration engine that coordinates all operations
- State Management: Persistent state management with event notifications
- Plugin System: Extensible plugin architecture for custom functionality
- Backend Abstraction: Support for different terminal multiplexers (tmux, etc.)
- Event System: Reactive event-driven architecture for real-time updates
§Usage Example
use orchflow_core::{Manager, storage::MemoryStore, state::StateManager};
use std::sync::Arc;
// Create a storage backend
let store = Arc::new(MemoryStore::new());
// Create state manager
let state_manager = StateManager::new(store);
// Create a backend (implement the MuxBackend trait)
// let backend = Arc::new(MyBackend::new());
// Create the manager
// let manager = Manager::new(backend, state_manager);
// Execute actions
// let result = manager.execute_action(Action::CreateSession {
// name: "main".to_string(),
// }).await?;
Re-exports§
pub use backend::WindowInfo;
pub use error::OrchflowError;
pub use error::Result;
pub use manager::Action;
pub use manager::CommandHistory;
pub use manager::Event;
pub use manager::FileManager;
pub use manager::Manager;
pub use manager::ManagerBuilder;
pub use manager::PaneType;
pub use manager::Plugin;
pub use manager::PluginContext;
pub use manager::PluginInfo;
pub use manager::PluginMetadata;
pub use manager::SearchProvider;
pub use manager::ShellType;
pub use state::PaneState;
pub use state::SessionState;
pub use state::StateEvent;
pub use state::StateManager;
pub use storage::MemoryStore;
pub use storage::StateStore;
Modules§
Structs§
- Pane
Info - Represents a pane within a session
- Session
Info - Represents a terminal multiplexer session
Traits§
- MuxBackend
- The core trait that all multiplexer backends must implement