diff --git a/README.md b/README.md new file mode 100644 index 0000000..efb1796 --- /dev/null +++ b/README.md @@ -0,0 +1,52 @@ +# 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; 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 [runa-spec-architecture.md](runa-spec-architecture.md) 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: + +```sh +cargo run -p runa +``` + +At this stage, it prints `Hello, world!`. + +## Project structure + +```text +. +├── Cargo.toml +├── crates/ +│ └── runa/ +│ └── src/main.rs +└── runa-spec-architecture.md +```