A Kotlin Multiplatform Client for Supabase. Supported targets:
GoTrue | Realtime | Postgrest | Storage | Functions | Apollo-GraphQL | Compose Auth 🚧 | Compose Auth UI 🚧 | |
---|---|---|---|---|---|---|---|---|
JVM | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ☑️ | ✅ |
Android | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
JS | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ☑️ | ✅ |
IOS | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 🚧 | ✅ |
tvOS 🚧 | ☑️ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
watchOS 🚧 | ☑️ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
MacOS 🚧 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
Windows 🚧 | ☑️ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
Linux 🚧 | ☑️ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
In-depth Kotlin targets
iOS: iosArm64, iosSimulatorArm64, iosX64
JS: Browser, NodeJS
tvOS: tvosArm64, tvosX64, tvosSimulatorArm64
watchOS: watchosArm64, watchosX64, watchosSimulatorArm64
MacOS: macosX64, macosArm64
Windows: mingwX64
Linux: linuxX64
✅ = full support
☑️ = partial support: no built-in OAuth/OTP link handling. Linux also has no support for persistent storage. For Compose Auth, it relies on GoTrue as fallback.
🚧 = experimental/needs feedback
❌ = not supported
Note: WASM planned see issue
Tutorial: Build a Product Management Android App with Jetpack Compose
Dokka documentation for the latest version
Available modules: gotrue-kt
, postgrest-kt
, functions-kt
, storage-kt
, realtime-kt
, apollo-graphql
, compose-auth
, compose-auth-ui
dependencies {
implementation("io.github.jan-tennert.supabase:[module]:VERSION")
//add ktor client engine (if you don't already have one, see https://ktor.io/docs/http-client-engines.html for all engines)
//e.g. the CIO engine
implementation("io.ktor:ktor-client-cio:KTOR_VERSION")
}
If you use multiple modules, you can use the bom dependency to get the correct versions for all modules:
implementation(platform("io.github.jan-tennert.supabase:bom:VERSION"))
implementation("io.github.jan-tennert.supabase:[module]")
- Chat Demo (Desktop/Android/Browser)
- File Upload Demo (Desktop/Android)
- Android Native Google login & in-app OAuth (Android)
- Multi-Factor Authentication (Desktop/Android/Browser)
- Multiplatform Deep Linking (Desktop/Android)
- Groceries Store App (Android)
- Fork the repository
- Create a branch
- Make your changes
- Submit a pull request with your new branch
- Postgres Syntax inspired by https://github.com/supabase-community/postgrest-kt
- Plugin system inspired by ktor