Skip to main content

roto

An AWS simulator written in Rust: a from-scratch rewrite of moto's server mode. One static binary, AWS wire-protocol compatible, persistent by default (SQLite + real-filesystem S3).

Status: under active development. See STATUS.md for current coverage and PLAN.md for the roadmap.

Documentation: The roto book (sources).

uv tool install roto-aws
roto-server --port 5070                      # persistent: ./roto-data ; add --ephemeral for in-memory
aws --endpoint-url http://localhost:5070 sts get-caller-identity
scripts/run-moto-tests.sh test_sts              # moto's own tests, run against roto

Lambda functions can execute local commands or POST events to an HTTP API. Configure bindings with --lambda-executors; see the runnable example and contracts. S3 bucket notifications invoke those same executors.

Documentation

python3 -m venv .venv-docs
.venv-docs/bin/python -m pip install -r requirements-docs.txt
.venv-docs/bin/zensical serve

GitHub Actions builds the book on pull requests and deploys main to GitHub Pages. Set the repository's Pages source to GitHub Actions. See the documentation guide for details.

Python package releases

Install with uv tool install roto-aws; the package provides the roto-server command. Upgrade with uv tool upgrade roto-aws. For development from source, run cargo run -p roto-server -- --port 5070.

Push a Cargo-compatible version tag such as v0.0.1 to trigger .github/workflows/release.yml. The shared workflow sets the workspace version from the tag, builds Linux x64/ARM64, Windows x64, macOS Intel/ARM64 wheels and a source distribution, then the local publishing job uploads them to PyPI. The shared components are pinned to a commit in vivainio/actions.

Before the first release, create the GitHub environment pypi and configure a PyPI Trusted Publisher (or pending publisher for a new project) with:

  • Project: roto-aws
  • Owner: vivainio
  • Repository: roto
  • Workflow filename: release.yml
  • Environment: pypi

Release tags should point to commits that pass the existing CI checks.

Build locally with uvx maturin build --release --locked --out dist or uvx maturin sdist --out dist.

To retry uploading already-built distributions, run the release workflow manually and provide the original release run ID in artifact-run-id. This skips rebuilding and publishes that run's artifacts. Verify the chosen run belongs to the release you intend to publish.

License

MIT. See LICENSE.

Metadata

Release files for roto-aws 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for roto-aws 0.0.2
File Size Uploaded
roto_aws-0.0.2.tar.gz 417.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for roto-aws 0.0.2
File
roto_aws-0.0.2-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
roto_aws-0.0.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
roto_aws-0.0.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
roto_aws-0.0.2-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
roto_aws-0.0.2-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 33.9 MB

Release files / roto_aws-0.0.2.tar.gz

Download URL roto_aws-0.0.2.tar.gz
Size 417.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f0c53b709b5385af7d28b503c74c3db1a7a034e10e57edf382a521c1f07d395c
BLAKE2b-256 checksum
How to use checksums
aacd4a86841b3d96dce298fc4854d0e19628355e59deeaa4a27dc2b51fd47bf6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / roto_aws-0.0.2-py3-none-win_amd64.whl

Download URL roto_aws-0.0.2-py3-none-win_amd64.whl
Size 6.3 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
4054d24b80bbd2ea7d6ad34b43e54e428152bd8ca1a6a97d152982941000ab16
BLAKE2b-256 checksum
How to use checksums
852610359f5a2fc0bbafa095bed4755085c5187e8c46b6f7db9b2a4a370f5e16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / roto_aws-0.0.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL roto_aws-0.0.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 7.0 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
e9e67adb96aec9a9267ac6bea6028183f2755e880c9e2c8baa9e55d3cdd70434
BLAKE2b-256 checksum
How to use checksums
6dfcc1abf4d22308bff2c482c609c6f4745beec8a71702f41b1d9c62f1769327
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / roto_aws-0.0.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL roto_aws-0.0.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 7.0 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
e2e52f2980a1d56c9a18bb2feb5efe5bdb108458d6b70c83232f275d428066f4
BLAKE2b-256 checksum
How to use checksums
cdf08d62d81d8d77d616612b99f5ed86226033a289e9ba0a448ea6da0bc5d734
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / roto_aws-0.0.2-py3-none-macosx_11_0_arm64.whl

Download URL roto_aws-0.0.2-py3-none-macosx_11_0_arm64.whl
Size 6.5 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
283f36e833d2f044c32f08b7c00548933c054d5c3f5281fe4c60014269f6622f
BLAKE2b-256 checksum
How to use checksums
96e5836cc112db5301a0fe40cc8402fefb59194f4fd6db30137ce9dbf28fe4d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / roto_aws-0.0.2-py3-none-macosx_10_12_x86_64.whl

Download URL roto_aws-0.0.2-py3-none-macosx_10_12_x86_64.whl
Size 6.7 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
ad325247a5396313886339478a8d4529b1050ff9d93506035607ff62ff0cc35f
BLAKE2b-256 checksum
How to use checksums
ac578e4df7e8a03a7dbea2efa12720b714844be640704bda64a8601b966936fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.1.1

6 release files

0.1.0

6 release files

This release

0.0.2 This release

6 release files

0.0.1

6 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page