FAQ

What is Barista?

A fully Maven-compatible build tool for the JVM — a drop-in for mvn with the same lifecycle phases, the same pom.xml and settings.xml, and the same repositories and plugins. What differs is underneath: a parallel, lock-aware dependency resolver, a content-addressed artifact cache, and a warm-JVM daemon so plugin execution doesn’t pay startup cost on every invocation. It is deliberately frugal with shared infrastructure — Maven Central, mirrors, and corporate repository managers — fetching artifacts once and reusing them.

How is it different from mvnd?

mvndkeeps a JVM warm to avoid Maven’s startup cost. Barista does that too (via barback), but it also moves the slow non-JVM work — dependency resolution, the artifact cache, and the network — out into the Rust CLI, outside the JVM entirely. The two are independent and can coexist. See Maven compatibility for the details.

Does it work with Gradle?

No. Barista is Maven-specific.

Does Barista phone home?

No. Telemetry is off and unconfigured by default — the transport path is unreachable out of the box. Three independent guards must all be true before anything is sent: you opt in (enabled = true), a post-privacy-review transport lever is flipped on (it ships false in v0.1), and an endpoint is configured (there is no compiled-in default). Even then, only five fixed event types are emitted, every textual field is a compile-time literal, and there are no paths, arguments, error messages, or dependency coordinates in the payload.

How does the cache work?

Fetched artifacts are stored in a content-addressed cache under ~/.barista/cache, keyed by SHA-256 and verified on ingest (which defends against cache poisoning). They are hardlinked into ~/.m2/repository for Maven compatibility. roastery is an optional team-shared cache server that mirrors upstream once and serves the whole team — useful across machines and CI.

Are builds reproducible?

barista.lock pins the resolved graph and the checksum verification results; it is readable, reviewable, and committable. --frozen (and the --ci macro) treats the lockfile as authoritative and errors if resolution would change it. The Barista release binaries themselves are byte-reproducible across independent builders.

What license is it under?

Dual-licensed: Apache License 2.0 or the MIT license, at your option. Contributions are accepted under the same dual license.

Is it ready for production?

Not yet — it’s a pre-release. v0.1 is in active development; command surfaces and on-disk formats may change until the first tagged release. That said, on macOS and Linux it already builds your project end-to-end via the barback daemon (single-module proven, reactor maturing); the resolution + caching path is the most mature. On Windows, use --no-daemon to fork to mvn for builds. See Getting started.