deka is a programming language and runtime for building reliable web applications. It compiles to JavaScript and runs both natively and in the browser via WASM.
- Homepage: https://deka.gg
- Language tour: https://deka.gg/tour
- Documentation: https://deka.gg/docs
- CodeQuality Explorer: https://explorer.deka.gg
- Releases: https://github.com/dekaruntime/deka/releases
crates/— Rust workspace with the compiler, runtime, CLI, LSP, and WASM targets.assets/— Shared assets such as the utility CSS bundle.docs/— Design notes and RFCs.scripts/— Build and test helpers.tests/— Integration tests and conformance fixtures.
PUBLISH.md— How to publish a new runtime release.STDLIB.md— How to version and publish@deka/*packages to the index.TESTING.md— How the test suites are run.RELEASE.md— Release process checklist.
Build the CLI:
cargo build --release -p cliRun the language suite:
./run.shNative runtime validation runs with ./run.sh against local workspace crates.
App testing remains available through deka test. See TESTING.md.
Link a package working tree into a consumer without changing deka.json or
deka.lock:
deka link ../my-package
deka unlink @scope/my-packageLinks are stored in the consumer's developer-only .deka/links.json (keep
.deka/ out of version control). During
bundling, a local link takes precedence over the installed copy in ds_modules; deka unlink removes only that
metadata and never deletes the package working tree. The linked package must
declare a scoped name such as @scope/my-package in its deka.json.