Armature Rhai
Rhai scripting language integration for Armature applications.
Write HTTP handlers, middleware, and business logic in Rhai scripts while leveraging Armature's high-performance Rust core.
Features
- Script Handlers: Define HTTP handlers in
.rhaifiles - Hot Reload: Automatic script reloading during development
- Type-Safe Bindings: Access HTTP requests, responses, and Armature features
- Sandboxed Execution: Safe script execution with configurable limits
- Performance: Compiled scripts with caching for production
Quick Start
use ;
async
Script Example
// handlers/users.rhai
// Access request data
let user_id = request.param("id");
let method = request.method();
// Handle different methods
if method == "GET" {
// Return JSON response
response.json(#{
id: user_id,
name: "Alice",
email: "alice@example.com"
})
} else if method == "PUT" {
let body = request.json();
// Process update...
response.ok()
} else {
response.method_not_allowed()
}
Hot Reload (Development)
Enable the hot-reload feature for automatic script reloading:
let engine = new
.with_hot_reload
.build?;