Contributing
Aleph is open source under the Apache-2.0 license. The repository is a monorepo:
| Path | |
|---|---|
crates/aleph-core | The trusted core (Rust): manifest types, validator, usage analyzer, interpreter, meter, keyspace, in-memory store |
crates/aleph-core-wasm | The core compiled to WebAssembly |
crates/xtask | Generates the JSON Schema and TypeScript types from the Rust types |
packages/manifest, packages/core-wasm, packages/sdk, packages/cli | @aleph-lang/manifest, @aleph-lang/core, @aleph-lang/sdk, @aleph-lang/cli |
conformance | Golden apps, bounds, scenarios, invalid manifests, and evolution cases |
examples | Example apps with React UIs |
website | This site (Next.js, static export) |
Setup
You'll need:
- Rust (pinned by
rust-toolchain.toml), with thewasm32-unknown-unknowntarget wasm-bindgen-cli0.2.130- Node 24 or newer
- pnpm
pnpm install
pnpm build
pnpm verifypnpm verify runs every check:
- Rust: format, clippy (pedantic, warnings are errors), tests, and generated code freshness
- TypeScript: Biome, build, typecheck, and tests
Run it before you push.
How changes land
- The Rust types are the format. Change them, then run
pnpm codegen. - Conformance is the contract. An intended behavior change updates the golden files (
pnpm --filter @aleph-lang/conformance update), and the diff is part of the review. - New language features need coverage everywhere: the checker (types and usage), the interpreter (metered identically), the SDK, a conformance case, and docs here.
- Long property runs:
PROPTEST_CASES=100000 cargo test --release -p aleph-core --test generated_plans.
The docs
pnpm --filter @aleph-lang/website devPages are MDX files in website/content/docs, and the navigation is website/lib/nav.ts. A test checks that every page in the navigation exists and that internal links resolve.