
🍌 An SDK for creating Wire clients on Android and JVM. Expanding to iOS and Web.
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:
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_CRYPTO selects the unified core-crypto-kmp dependency. Apple builds require it to be true.kalium.providerCacheScope controls provider-level caches. Consumer builds should set it explicitly to LOCAL or GLOBAL; this repository uses LOCAL for 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.logic is the public SDK entry point used by clients.sample:*, tools:*, and test:* contain development support code.For module boundaries and source-set details, see architecture.
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:
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_CRYPTO selects the unified core-crypto-kmp dependency. Apple builds require it to be true.kalium.providerCacheScope controls provider-level caches. Consumer builds should set it explicitly to LOCAL or GLOBAL; this repository uses LOCAL for 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.logic is the public SDK entry point used by clients.sample:*, tools:*, and test:* contain development support code.For module boundaries and source-set details, see architecture.