supabase-kt
A Kotlin Multiplatform Client for Supabase. Supported targets:
GoTrue | Realtime | Postgrest | Storage | Functions | Apollo-GraphQL | |
---|---|---|---|---|---|---|
JVM | ✅ | ✅ | ✅ | ✅ | ||
Android | ✅ | |||||
JS (Browser, NodeJS) | ✅ | ✅ | ✅ | |||
IOS | ||||||
tvOS (tvosArm64, tvosX64, tvosSimulatorArm64) |
✅ | |||||
watchOS (watchosArm64, watchosX64, watchosSimulatorArm64) |
☑️ | |||||
MacOS (macosX64 & macosArm64) |
✅ | |||||
Windows (mingwX64) |
☑️ | ✅ | ||||
Linux (linuxX64) 🚧 | ☑️ |
Note: WASM planned see issue
Links
Tutorial: Build a Product Management Android App with Jetpack Compose
Dokka documentation for the latest version
Installation
Available modules: gotrue-kt
, postgrest-kt
, functions-kt
, storage-kt
, realtime-kt
, apollo-graphql
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]")
Main Modules
Authentication (GoTrue)
Database/Postgrest
Storage
Realtime
Functions (Edge Functions)
Plugins
Apollo GraphQL integration
Demos
- 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)
Videos
Contribution
How to contribute
- Fork the repository
- Create a branch
- Make your changes
- Submit a pull request with your new branch
Credits
- Postgres Syntax inspired by https://github.com/supabase-community/postgrest-kt
- Plugin system inspired by ktor