AIec

Contribute

AIec is Apache 2.0 and the whole system is in this repository. Building it needs a Linux host with KVM, PostgreSQL and an S3-compatible object store. Below is what actually works, verified against the current tree.

Setup

git clone https://github.com/fedoragobrowse-design/AIec
cd AIec
cargo build --workspace --all-features

Check your prerequisites before anything else. aiec doctor reports the operating system, the runtime, the Bubblewrap and Docker binaries, /dev/kvm, the Firecracker binary and kernel, the guest artifact and the database configuration. It reports; it does not configure a cluster, and it does not verify the guest image digest, probe object storage or check TLS.

The gate

Every change passes the same four checks. This is the whole gate:

cargo fmt --all --check
cargo clippy --workspace --all-features --all-targets -- -D warnings
DATABASE_URL=postgresql://user:pass@127.0.0.1:5432/aiec \
  cargo test --workspace --all-features
python3 scripts/check-sdk-contract.py

The database-backed tests are real tests against a real PostgreSQL instance — they do not skip when the URL is absent, they just fail. The Python suites are separate and also part of the gate:

(cd sdk/python && python3 -m pytest tests/ -q)
(cd benchmarks && python3 -m pytest tests/ -q)

The website is a small static builder with no dependencies:

python3 web/build.py

The crate map

The crates in the workspace and what each one owns.
CrateOwns
aiec-coreDomain types, errors and the traits everything else implements against
aiec-runtimeFirecracker, Docker, Bubblewrap and e2b sandbox runtimes
aiec-network-linuxLinux network primitives, including the TAP driver
aiec-guardOut-of-guest policy enforcement and the proposal queue
aiec-storageMetadata stores and object stores, in-memory and PostgreSQL
aiec-apiThe HTTP control plane and its routes
aiec-clientThe Rust client
aiec-cliThe aiec command line
aiec-mcpThe MCP server — nineteen tools
aiec-agentThe in-process agent runner

There is also a Python SDK under sdk/python and the benchmark harness under benchmarks.

Conventions worth knowing

Open work

The project keeps a running list of what is known to be wrong or missing, in docs/known-defects.md, and what is intended next, in docs/ROADMAP.md. Both are written to be useful to a new contributor rather than as a private notebook.

Work that is genuinely open and well-scoped:

Security reports

Do not open a public issue for a vulnerability

Security issues go through the private contact documented in the repository's SECURITY.md. Please read that file for the current route rather than assuming one — it is the authoritative source.