Go to file
Steve Biedermann 50bc795738 chore: scaffold Phase 0 repository structure
Move the updated architecture specification into docs, add the Rune adapter library scaffold, and reserve the planned repository directories.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-01 20:15:00 +01:00
crates chore: scaffold Phase 0 repository structure 2026-11-01 20:15:00 +01:00
docs chore: scaffold Phase 0 repository structure 2026-11-01 20:15:00 +01:00
examples chore: scaffold Phase 0 repository structure 2026-11-01 20:15:00 +01:00
runa-std chore: scaffold Phase 0 repository structure 2026-11-01 20:15:00 +01:00
scripts chore: scaffold Phase 0 repository structure 2026-11-01 20:15:00 +01:00
tests chore: scaffold Phase 0 repository structure 2026-11-01 20:15:00 +01:00
vscode chore: scaffold Phase 0 repository structure 2026-11-01 20:15:00 +01:00
.gitignore init 2026-11-01 19:35:04 +01:00
AGENTS.md chore: scaffold Phase 0 repository structure 2026-11-01 20:15:00 +01:00
Cargo.lock chore: scaffold Phase 0 repository structure 2026-11-01 20:15:00 +01:00
Cargo.toml chore: scaffold Phase 0 repository structure 2026-11-01 20:15:00 +01:00
README.md chore: scaffold Phase 0 repository structure 2026-11-01 20:15:00 +01:00

README.md

Runa — Rune Actors

Runa (short for Rune Actors) is an experimental project to build a persistent, live programming world around isolated actors written in Rune. The long-term vision combines an inspectable graphical environment with a programmatic API and a VS Code extension, all connected to the same running image.

Status

Runa is at an early prototype stage. The current repository contains a minimal Rust executable and a scaffold for the Rune adapter library; the actor runtime, Rune integration, graphical world, and development API described in the architecture spec are planned, not yet implemented.

The first milestone is to evaluate Rune's embedding, async execution, interruptibility, and debugging capabilities before building the actor kernel.

Design goals

  • Keep actor identity, mailbox, private state, behavior, and incarnation separate.
  • Use message passing rather than shared mutable state for actor interaction.
  • Keep behavior implementations immutable and support safe, versioned updates.
  • Expose the same runtime capabilities to in-world tools and external clients.
  • Be explicit about execution, delivery, and persistence guarantees.

See the architecture spec for the full vision, architecture, roadmap, and open questions.

Getting started

You need a Rust toolchain that supports the workspace's Rust 2024 edition.

Run the current executable from the repository root:

cargo run -p runa

At this stage, it prints Hello, world!.

Project structure

.
├── Cargo.toml
├── crates/
│   ├── runa/             # Main binary
│   └── runa-rune/        # Phase 0 Rune adapter scaffold
├── docs/
│   ├── architecture.md
│   └── decisions/
├── runa-std/
│   ├── core/
│   ├── actors/
│   ├── ui/
│   └── tools/
├── scripts/
├── vscode/
├── examples/
└── tests/

runa-std/ is reserved for the default Rune scripts loaded into an image. scripts/ is for general-purpose development automation. Root-level tests/ is reserved for system and end-to-end tests; it is not automatically discovered by Cargo. Add an explicit runner when those tests are introduced, keeping Rust crate integration tests within each crate.

Only the Phase 0 crates are scaffolded. The remaining crates in the spec will be added as their functionality is implemented.