Kalium is Wire's Kotlin Multiplatform SDK for messaging, end-to-end encryption, conversation state, backup, calling integration, and Wire backend access.
It is primarily built for Wire clients and currently targets Android, JVM, and Apple platforms. JavaScript support exists only where individual modules enable it.
Release builds are published under the Maven group com.wire.kalium. The main SDK entry point is the :logic module:
dependencies {
implementation("com.wire.kalium:logic:<version>")
}Use the version from GitHub releases or Maven Central metadata.
| Platform | Status | Notes |
|---|---|---|
| Android | Supported | Main production target. |
| JVM | Supported | Used by tests, tools, and the CLI sample. |
| iOS/macOS Apple Silicon | Supported | Requires unified CoreCrypto; see iOS build guide. |
| JavaScript | Limited | Experimental and module-dependent. |
Requirements:
- JDK 21
- Git
- macOS on Apple Silicon for Apple target builds
Common commands:
./gradlew build
./gradlew jvmTest -Djava.library.path=./native/libs
./gradlew detektJVM tests and the CLI need native libraries. Build them with:
makeThe libraries are written to native/libs.
Kalium uses a few Gradle properties that consumers and contributors may need to set explicitly:
./gradlew <task> -PUSE_UNIFIED_CORE_CRYPTO=true
./gradlew <task> -Pkalium.providerCacheScope=LOCALUSE_UNIFIED_CORE_CRYPTOselects the unifiedcore-crypto-kmpdependency. Apple builds require it to betrue.kalium.providerCacheScopecontrols provider-level caches. Consumer builds should set it explicitly toLOCALorGLOBAL; this repository usesLOCALfor standalone builds.
See contributor setup for the longer explanation.
Kalium is split by layer:
core:*contains shared models, utilities, logging, and cryptography.data:*contains networking, persistence, protobuf, and data mappers.domain:*contains feature domains such as messaging, backup, calling, cells, work, and user storage.logicis the public SDK entry point used by clients.sample:*,tools:*, andtest:*contain development support code.
For module boundaries and source-set details, see architecture.