kuilt Help

Install

Add only what your feature needs. kuilt is published to Maven Central under us.tractat.kuilt.

Add the repository

// settings.gradle.kts repositories { mavenCentral() }

Depend on the modules you need

The recommended path is the BOM: it keeps all kuilt modules on one version, while you add only the modules you need:

Why use the BOM: it prevents version drift between kuilt modules.

// build.gradle.kts dependencies { implementation(platform("us.tractat.kuilt:kuilt-bom:VERSION")) implementation("us.tractat.kuilt:kuilt-websocket") // WebSocket transport implementation("us.tractat.kuilt:kuilt-crdt") // CRDT data types implementation("us.tractat.kuilt:kuilt-raft") // Raft consensus implementation("us.tractat.kuilt:kuilt-session") // Room membership }

Without the BOM, pin each module explicitly (for example, us.tractat.kuilt:kuilt-crdt:VERSION). Replace VERSION with the latest release.

The fabric and session modules re-export the kuilt-core contract (Loom/Seam/Swatch), so you do not need to list kuilt-core separately alongside them. The data modules are different: kuilt-crdt and kuilt-bolt are plain serializable value types that work with no network at all, so they do not bring the contract with them — add kuilt-core yourself if you want it too. If you only need in-memory message passing, kuilt-core alone is enough.

If you're unsure where to start, begin with one transport module (kuilt-websocket is usually the easiest), then add kuilt-crdt, kuilt-session, or kuilt-raft only when the feature needs those guarantees.

Local iteration with includeBuild

When you are developing kuilt and a consumer side by side, you can use includeBuild so Gradle uses your local kuilt source instead of the published artifact:

// consumer's settings.gradle.kts if (file("../kuilt").exists()) includeBuild("../kuilt")

When the kuilt/ directory is absent (CI, temporary worktrees), Gradle falls back to the published artifact automatically. includeBuild is only a local development shortcut.

Test utilities

These are the two you reach for first when testing code built on kuilt:

// commonTest testImplementation("us.tractat.kuilt:kuilt-test:VERSION") // fakes + test utilities testImplementation("us.tractat.kuilt:kuilt-conformance:VERSION") // SeamConformanceSuite

kuilt-conformance includes SeamConformanceSuite, which verifies that a Loom implementation follows the kuilt contract. See Connections for usage.

Several libraries ship their own test-support module too — kuilt-raft-test, kuilt-session-test, kuilt-gossip-test, kuilt-deal-test — published on the same version line, so the BOM covers them.

16 August 2026