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