Your first build with Curie.
Install the binary, drop in a Curie.toml, and run curie build. That's the whole onboarding.
1. Prerequisites
- JDK 21 or newer on
PATH— Curie shells out tojavac. - Cargo (from rustup) — Curie installs via
cargo installbelow.
2. Install
Curie is published on crates.io, so the install is one Cargo invocation. Cargo pulls the sources, builds a release binary, and drops it on your PATH:
$ cargo install curie-build $ curie --version curie 0.7.0
For upgrading, building from source, and shell completions see Installation.
3. Create a project
Shortcut: curie new — scaffold a project in one command. Curie generates the directory, Curie.toml, and a starter source file for you:
Created hello/Curie.toml Created hello/src/com.example/Hello.java Run `curie build` inside hello/ to compile and package.
4. Build
Building hello v0.1.0 Compile 1 source file(s) [no class files] Tests no test sources found Package hello-0.1.0.jar Done target/hello-0.1.0.jar
A second run with no edits short-circuits — every step prints up to date and exits in milliseconds.
5. Run it
Compile up to date
Package up to date
Hello, Curie.
Or run the JAR directly: java -jar target/hello-0.1.0.jar.
6. Add a dependency
Open Curie.toml and add a [dependencies] table. Curie resolves from Maven Central, verifies the SHA-256 sidecar, and caches under ~/.m2/repository — the same layout Maven uses.
[application] name = "hello" version = "0.1.0" mainClass = "com.example.Hello" [dependencies] "com.fasterxml.jackson.core:jackson-databind" = "2.17.2"
On the next build you'll seeResolve deps 3 JAR(s)as Jackson and its transitive closure are fetched in parallel, checksum-verified, and put on the classpath. Subsequent builds verify the cached files against their.sha256sidecars with zero network calls.
Next steps
- Installation — upgrading, building from source, shell completions, manual project layout
- Dependency resolution & checksums — Maven Central, BOM imports,
curie deps --whyconflict traces - Kotlin support — drop in
.ktfiles, no config - Groovy & Spock —
.groovysources and Spock specs, auto-detected - Workspaces — multi-module monorepos with one root
Curie.toml - Incremental builds — how the rebuild gate decides what to do
- Publishing —
curie publish: POM, sources/javadoc jars, GPG, HTTP PUT - Audit —
curie audit: CycloneDX SBOM & OSV vulnerability scan - GraalVM native —
curie nativefor serverless and CLI binaries