The zero-abstraction deploy pipeline. Scaffold, develop, and ship production Rust web apps with three commands. No cloud vendors. No containers on your machine. Just your code on your server.
No YAML. No Dockerfiles. No CI config. Describe what you want to an LLM and perc handles the rest.
Initialises an Axum project with routing, config, and deploy structure. Ready for an AI coding agent and human to start pairing on features immediately.
Starts Postgres, S3 storage, and Restate as containers. Watches your source, auto-restarts on change. Everything your app needs, zero setup.
Cross-compiles to a static Linux binary, builds a minimal OCI image in pure Rust, and ships it over SSH. Automatic HTTPS. No registry, no runtime.
Opinionated where it matters. Each feature is one command away.
No Docker daemon on your dev machine. Perc builds minimal container images entirely in Rust and pipes them directly to the server over SSH.
Set a domain, Caddy provisions a Let's Encrypt certificate. Multiple apps on one VPS get routed by domain. Zero TLS configuration.
Add [restate] to your config and get
Restate server deployed alongside your app. Durable
workflows, sagas, and virtual objects out of the
box.
One command provisions PostgreSQL, creates a
database and user, injects
DATABASE_URL, and auto-tunes for
available RAM. Per-app isolation on shared
instances.
Declare a bucket in config, get a local RustFS instance for development. Same S3 API in dev and production. Console included for debugging.
After bootstrap, SSH is restricted to your Tailscale network. Public-facing ports are 80 and 443 only. Your deploy surface is zero-trust by default.
No build servers. No registries. No orchestrators. A single SSH connection and your binary is running.
Builds a static
x86_64-unknown-linux-musl
binary via cargo-zigbuild. No target machine
toolchain needed.
Creates a minimal OCI image in pure Rust. Just your binary, nothing else. No runtime dependency.
Pipes the image directly to
podman load on the target. No
registry, no intermediate storage, no
credentials.
Generates a systemd unit via Podman Quadlet. Auto-restarts, logs via journald, lifecycle managed by the OS.
Health-checks the app on the target before reporting success. If it doesn't respond, you know immediately.
Your entire stack is defined in perc.toml.
Databases, storage, secrets, domains — all derived
from one source of truth.
Lots of people are building tools with AI coding agents right now. That means there's a lot of vibe-coded nonsense out there.
Perc is in active development and has rough edges. APIs will change, features will break, and there are gaps in what's implemented. Don't rely on it for anything serious right now.
Any tool you find on GitHub, including this one, deserves scrutiny before you trust it with your infrastructure. Read the source. Check the commit history.
I appreciate your interest and value any feedback. But bookmark this, give it a few months, and come back to see how it's developed. If it's still here and more mature, maybe then it's worth a real look.
Install perc and deploy your first Rust app in under five minutes.