OrchFlow Core
A transport-agnostic orchestration engine for managing terminal sessions, panes, and plugins with an event-driven architecture.
Overview
OrchFlow Core provides the foundational orchestration engine that powers the OrchFlow ecosystem. It's designed to be independent of any specific UI framework or transport mechanism, making it suitable for integration into various environments including desktop apps, web services, and CLI tools.
Architecture
The core is built around several key components:
- 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
Features
- Transport-agnostic design - works with any frontend
- Event-driven architecture for reactive UIs
- Pluggable backend support (tmux, screen, etc.)
- Extensible plugin system
- Type-safe action and event handling
- Async/await throughout
Usage
use ;
use Arc;
// Create a storage backend
let store = new;
// Create state manager
let state_manager = new;
// Create a backend (implement the MuxBackend trait)
let backend = new;
// Create the manager
let manager = new;
// Execute actions
let result = manager.execute_action.await?;
Implementing a Backend
To integrate with a terminal multiplexer, implement the MuxBackend
trait:
use MuxBackend;
use async_trait;
;
Creating Plugins
Extend functionality by implementing the Plugin
trait:
use ;
use async_trait;
;
License
MIT OR Apache-2.0