1.9 KiB
1.9 KiB
Architecture of the rhai-engine-ui
Crate
The rhai-engine-ui
crate provides a web-based user interface for interacting with the rhailib ecosystem, offering both client-side and server-side components for comprehensive Rhai script management and execution.
Core Architecture
graph TD
A[Web UI] --> B[Client-Side Components]
A --> C[Server-Side Components]
A --> D[Integration Layer]
B --> B1[Yew Frontend]
B --> B2[WebAssembly Runtime]
B --> B3[Browser Interface]
C --> C1[Axum Web Server]
C --> C2[Redis Integration]
C --> C3[API Endpoints]
D --> D1[Task Submission]
D --> D2[Real-time Updates]
D --> D3[Result Display]
Key Features
Frontend (WebAssembly)
- Yew Framework: Modern Rust-based web frontend
- Real-time Interface: Live updates and interactive script execution
- Browser Integration: Native web technologies with Rust performance
Backend (Optional Server)
- Axum Web Server: High-performance async web server
- Redis Integration: Direct connection to rhailib task queues
- API Layer: RESTful endpoints for task management
Dual Architecture
- Client-Only Mode: Pure WebAssembly frontend for development
- Full-Stack Mode: Complete web application with server backend
- Feature Flags: Configurable deployment options
Dependencies
Frontend Dependencies
- Yew: Component-based web framework
- WebAssembly: Browser runtime for Rust code
- Web APIs: Browser integration and DOM manipulation
Backend Dependencies (Optional)
- Axum: Modern web framework
- Redis: Task queue integration
- Tower: Middleware and service abstractions
Deployment Options
The UI can be deployed as a static WebAssembly application for development use or as a full-stack web application with server-side Redis integration for production environments.