# at-run `at-run` is a PDS-first execution system for AT Protocol code. Authors keep code in their own repositories; runners resolve a code record, fetch its blob from the author's PDS, prepare its public runtime, and execute it inside a constrained container. This repository is the Rust rewrite of the proof of concept that lives under `streamhut/packages/at-run`. ## Status The project is an early beta V2 implementation. The first slice contains: - the `dev.mainasara.at-run.beta.v2.*` Lexicons; - the architecture and protocol invariants; - core Rust types for runtime binding, record, and archive validation; - verified DID/PDS record and blob retrieval; - a portable Docker Engine boundary backed by Bollard; - exact Docker-daemon platform selection; - non-executing runtime-image and PDS-code materialization into separate Docker volumes; - bounded newline-delimited JSON invocation types; and - hardened creation of the fixed runner-owned main container in a stopped state. See [docs/architecture.md](docs/architecture.md) and [docs/runtimes.md](docs/runtimes.md) for the language/runtime contract, plus [lexicons/README.md](lexicons/README.md) for schema invariants. ## Workspace - `at-run-core`: protocol-independent records and validation. - `at-run-atproto`: DID resolution and verified code/runtime retrieval from PDSs. - `at-runner`: the runner process and container-engine adapter. ## Development ```sh cargo test --workspace cargo fmt --all --check ``` The live Docker test uses a local `scratch` fixture so it never needs registry access: ```sh docker build \ --tag at-run-runtime-fixture:local \ crates/at-runner/tests/fixtures/runtime-image cargo test -p at-runner \ -- --ignored ``` The fixture has an intentionally unusable entrypoint. A successful test proves that materialization only creates stopped containers and never invokes the network-selected image.