Runtime standardisation for decentralised apps on the Atmosphere
Rust 100%
Dockerfile <1%
<1%

README.md

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 and docs/runtimes.md for the language/runtime contract, plus 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 #

cargo test --workspace
cargo fmt --all --check

The live Docker test uses a local scratch fixture so it never needs registry access:

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.