Crate orchflow_core

Source
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§

backend
error
manager
state
storage

Structs§

PaneInfo
Represents a pane within a session
SessionInfo
Represents a terminal multiplexer session

Traits§

MuxBackend
The core trait that all multiplexer backends must implement