macOS and Linux - Homebrew
brew tap davethomas11/homebrew-vectrune
brew install vectruneThen verify the install with:
vectrune --versionTeaching site preview
A practical path from first API to reusable examples.
Mass-adoption milestone
Vectrune is a declarative language and runtime for structured data, APIs, and small app workflows. This teaching-site version focuses on one clear goal: help you run a working app, understand the file shape, and pick the right next example.
Quickstart
Install Vectrune for your platform, then run your first app end to end.
brew tap davethomas11/homebrew-vectrune
brew install vectruneThen verify the install with:
vectrune --versionThe repository currently documents a release-download path for Windows.
cargo install --path .Use this path when you already have a Rust toolchain and want to run from a local clone.
vectrune --versionvectrune examples/app.runeThis starts the minimal REST app defined in examples/app.rune.
curl http://127.0.0.1:3000/healthExpected response: OK
Vectrune apps use readable sections like @App and @Route, and you can get a working server without a lot of framework boilerplate.
Interactive
Type some Rune code below and run it directly in this sandbox.
Try changing the log message or adding new routes.
Language tour
Defines the app name, type, version, and optional startup behavior.
Defines structure and validation rules for request or data shapes.
Maps an HTTP route to a sequence of steps in a run: block.
Define reusable view sections with @Component/Name, then pass named values at each invocation site: MyComponent title="Hello".
Use builtins such as parse-json, validate, respond, and memory helpers.
#!RUNE
@App
name = Example API
type = REST
version = 1.0
@Route/GET /health
run:
log "Health check"
respond 200 "OK\Guided example
The examples/memory_api.rune example teaches app startup, schema validation, and REST routes together.
@App
name = Memory Example API
version = 1.0
type = REST
run:
skaters = load-rune skateboarders.rune
set-memory skatersLoad starter data at boot and keep it in memory for later routes.
@Schema/Skater
fields:
name: String
age: Integer
style: StringUse schemas to validate the shape of incoming data before mutating state.
@Route/GET /Skaters
run:
skaters = get-memory skaters
return skatersRoutes can pull from runtime memory and return the current value directly.
@Route/PUT /Skaters
run:
skaters = get-memory skaters
new-skater = parse-json body
validate new-skater #Skater
append skaters.Skateboarder.record new-skater
set-memory skaters
return skatersParse the request, validate it against the schema, then update shared state.
load-rune, set-memory, get-memory, parse-json, validate, append, and return.
Starter examples
The smallest complete app. Best first stop for understanding @App, @Route, and run:.
A low-cognitive-overhead data document for learning records, repeated entries, and transform workflows.
A stronger REST example with schemas, CRUD-style routes, validation, and path parameters.
Learn GraphQL queries and mutations with memory-backed state and a compact app shape.
A Rune-Web example split into UI, logic, and style parts. Good once the basics already feel natural.
What next