Edit this page

Contributing

Aleph is open source under the Apache-2.0 license. The repository is a monorepo:

Path
crates/aleph-coreThe trusted core (Rust): manifest types, validator, usage analyzer, interpreter, meter, keyspace, in-memory store
crates/aleph-core-wasmThe core compiled to WebAssembly
crates/xtaskGenerates 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
conformanceGolden apps, bounds, scenarios, invalid manifests, and evolution cases
examplesExample apps with React UIs
websiteThis site (Next.js, static export)

Setup

You'll need:

  • Rust (pinned by rust-toolchain.toml), with the wasm32-unknown-unknown target
  • wasm-bindgen-cli 0.2.130
  • Node 24 or newer
  • pnpm
pnpm install
pnpm build
pnpm verify

pnpm 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 dev

Pages 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.