Requirements
Runtime (applications)
Section titled “Runtime (applications)”| Requirement | Version / note |
|---|---|
| JDK | 21+ (virtual threads; same as Kona) |
| Kona | Matching snapshot/release of kona-http, kona-session, kona-crema, and related modules (see your Brew release notes) |
| Brew | org.konaframework:kona-brew |
| Browser | Modern evergreen browsers; Alpine 3.x APIs |
Session + CSRF are required for update requests that carry _token. Cookie or server session drivers both work when wired through Kona’s session provider.
Development (this repository)
Section titled “Development (this repository)”| Tool | When you need it |
|---|---|
| JDK 21 | Always — library + samples |
| Node 22 | Only to work on the JS runtime under js/ (Vitest, esbuild, Playwright) |
| Gradle | Wrapper included (./gradlew) |
| Maven local | Until Central publishes are live: publish Kona then Brew with publishToMavenLocal |
You do not need Node to use Brew in an application. The client bundles (brew.min.js, brew.js, brew.esm.js, brew.csp.min.js) are committed under brew/src/main/resources/org/konaframework/brew/ and served by the framework.
Alpine.js
Section titled “Alpine.js”Brew bundles Alpine.js 3.17.x and these plugins inside the default runtime:
- morph, intersect, collapse, focus, persist, anchor, mask, sort, resize
window.Alpine and window.Brew are both set when /brew/brew.min.js loads. See Alpine.js coupling for coexistence rules and $wire.
Optional
Section titled “Optional”| Piece | Role |
|---|---|
| Vite / asset pipeline | Only if you custom-bundle Brew ESM instead of the served script |
| Playwright | Browser smoke tests in the Brew repo (js/playwright) |
| Kona Idea / LSP | Completions for <brew:…> and wire:* (see LSP contract in the repo) |
- Installation — add Brew to a Kona project