@@ -23,7 +23,8 @@ a native implementation targeting behavioral compatibility with Clojure.
2323- ** Single binary distribution** — ` cljw build app.clj -o app ` , runs without cljw installed
2424- ** Wasm FFI** — call WebAssembly modules from Clojure (523 opcodes including SIMD + GC)
2525- ** Dual backend** — bytecode VM (default) + TreeWalk interpreter (reference)
26- - ** 835+ vars** across 16 namespaces (635/706 clojure.core)
26+ - ** deps.edn compatible** — Clojure CLI subset (-A/-M/-X/-P, git deps, local deps)
27+ - ** 869+ vars** across 17 namespaces (637/706 clojure.core)
2728
2829## Getting Started
2930
@@ -46,6 +47,26 @@ zig build -Doptimize=ReleaseSafe # Optimized build
4647./zig-out/bin/cljw # Interactive REPL
4748```
4849
50+ ### deps.edn Projects
51+
52+ ``` bash
53+ # Download dependencies (git deps require explicit -P)
54+ ./zig-out/bin/cljw -P
55+
56+ # Run with aliases
57+ ./zig-out/bin/cljw -M:run # Main opts
58+ ./zig-out/bin/cljw -X:build # Exec function
59+ ./zig-out/bin/cljw -A:dev src/app.clj # Extra paths
60+ ./zig-out/bin/cljw -Spath # Show classpath
61+
62+ # Run tests
63+ ./zig-out/bin/cljw test # Auto-discover test/
64+ ./zig-out/bin/cljw test -A:test # With alias
65+ ```
66+
67+ Supports ` :local/root ` , ` :git/url ` +` :git/sha ` , ` :deps/root ` , transitive deps.
68+ No Maven/Clojars support (git deps and local deps only).
69+
4970### Build a Standalone Binary
5071
5172``` bash
@@ -71,7 +92,7 @@ Known divergences are documented in [DIFFERENCES.md](DIFFERENCES.md).
7192
7293| Namespace | Vars | Description |
7394| --------------------| ------| --------------------------------|
74- | clojure.core | 635 | Core language functions |
95+ | clojure.core | 637 | Core language functions |
7596| clojure.string | 21 | String manipulation |
7697| clojure.math | 45 | Math functions |
7798| clojure.set | 12 | Set operations |
@@ -87,6 +108,7 @@ Known divergences are documented in [DIFFERENCES.md](DIFFERENCES.md).
87108| clojure.java.io | 7 | File I/O (Zig-native) |
88109| clojure.java.shell | 5 | Shell commands (sh) |
89110| cljw.http | 6 | HTTP server/client |
111+ | cljw.wasm | 17 | WebAssembly FFI |
90112
91113### Wasm FFI
92114
@@ -136,7 +158,7 @@ Call WebAssembly modules directly from Clojure:
136158- ** Bytecode VM** — 75 opcodes, superinstructions, fused branch ops
137159- ** ARM64 JIT** — hot integer loop detection with native code generation
138160- ** Bootstrap cache** — core.clj pre-compiled at build time (~ 5ms restore)
139- - ** Zero-config projects** — auto-detect ` src/ ` , ` cljw.edn ` optional
161+ - ** deps.edn projects** — Clojure CLI compatible config (git deps, local deps, aliases)
140162
141163## Project Structure
142164
161183└── wasm/ WebAssembly runtime (523 opcodes)
162184
163185bench/ 31 benchmarks, multi-language
164- test/ 48 Clojure test files (43 upstream ports)
186+ test/ 74 Clojure test files (50 upstream ports)
165187```
166188
167189The [ ` .dev/ ` ] ( .dev/ ) directory contains design decisions, optimization logs,
@@ -184,17 +206,17 @@ bash bench/run_bench.sh --bench=fib_recursive # Single benchmark
184206
185207``` bash
186208zig build test # 1,300+ Zig test blocks
187- bash test/e2e/run_e2e.sh # End-to-end tests
209+ bash test/e2e/run_e2e.sh # End-to-end tests (6 wasm)
210+ bash test/e2e/deps/run_deps_e2e.sh # deps.edn E2E tests (14)
188211```
189212
190- 48 Clojure test files including 43 upstream test ports with 600+ deftests.
213+ 74 Clojure test files including 50 upstream test ports with 600+ deftests.
191214All tests verified on both VM and TreeWalk backends.
192215
193216## Future Plans
194217
195218- ** JIT expansion** — float operations, function calls, broader loop patterns
196219- ** Generational GC** — nursery/tenured generations for throughput
197- - ** Dependency management** — deps.edn compatible (git/sha deps)
198220- ** Persistent data structures** — HAMT/RRB-Tree implementations
199221- ** wasm_rt** — compile Clojure to run * inside* WebAssembly
200222
0 commit comments