On this page
Overview
Realm Kotlin is a mobile database SDK for Kotlin Multiplatform and Android. RealmObject types define the schema, transactions persist objects, Realm Query Language filters data, and Flow APIs observe changes.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Persist Kotlin objects as the database schema
Register RealmObject types in RealmConfiguration, open the database, and use write or writeBlocking transactions to insert, update, and delete objects without a separate ORM mapping layer.
Sources: [2]
Query local data and observe changes through Flow
Realm Query Language filters objects, and queries, RealmObjects, and collections expose asFlow() APIs for coroutine-based change observation.
Sources: [2]
Best fit
Fits object-oriented local data for offline mobile applications
Android and KMP applications can combine local persistence, queries, transactions, and change notifications in one SDK when offline-first storage is important.
Sources: [2]
Before adoption
Review the Atlas Device Sync and Realm SDK deprecation before new adoption
The current README warns that Atlas Device Sync and Realm SDKs were deprecated in September 2024. The last published line documented in the changelog is 2.3.0, while main declares 3.0.0-SNAPSHOT and points users toward sync-free 3.0.0+ or the community branch. New projects should verify long-term maintenance and migration options.
Official sources
- [1]realm/realm-kotlin — GitHub repository(2026-10-06)
- [2]Realm Kotlin 2.3.0 — README(2026-10-06)
- [3]Realm Kotlin 2.3.0 — CHANGELOG(2026-10-06)
- [4]Realm Kotlin current README deprecation notice(2026-10-06)
- [5]Realm Kotlin current CHANGELOG(2026-10-06)
- [6]Realm Kotlin Apache-2.0 license(2026-10-06)
Supplemental curator note
Realm offers a convenient object-oriented local database, but upstream announced deprecation of Atlas Device Sync and Realm SDKs in September 2024. New adoption should compare the community branch, successor direction, and alternative local databases.
Try it in 3 steps
- 1
Add the Realm Kotlin 2.3.0 plugin and local database
Use the published 2.3.0 line only for this local-database check. Review the Atlas Device Sync and Realm SDK deprecation before adoption.
plugins { id("io.realm.kotlin") version "2.3.0" } dependencies { implementation("io.realm.kotlin:library-base:2.3.0") } - 2
Define a RealmObject model
Follow the README model pattern and define one minimal schema object.
class Person : RealmObject { var name: String = "" } - 3
Open Realm, write an object, and query it
Persist one local object and confirm it through a local query. This example does not use Device Sync.
val config = RealmConfiguration.create(schema = setOf(Person::class)) Realm.open(config).use { realm -> realm.writeBlocking { copyToRealm(Person().apply { name = "Ada" }) } println(realm.query<Person>().find().size) }
Growth
Growth trends · Last 30 days
1,102 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 0
- Open PRs
- 19
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- kotlin
- kotlin-multiplatform
- kotlin-multiplatform-library
- kotlin-multiplatform-mobile
- android
- android-library
- database
- nosql-database
- realtime-database
- kotlin-native
- Stars
- 1,102
- Forks
- 95
- Watchers
- 22
- Open issues
- 246
- Contributors
- 30
- Owner type
- Organization
- Primary language
- Kotlin
- License
- Apache-2.0
- Repository last updated
- Oct 31, 2025
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- kotlinx.coroutines13,820 Stars
2 shared tag(s) · 1 shared category(s) · Same language
Structure asynchronous and concurrent work in Kotlin with the official library
Kotlin - Timber10,853 Stars
2 shared tag(s) · 1 shared category(s) · Same language
Organize Android logging through a small API and replaceable output trees
Kotlin - Moshi10,165 Stars
2 shared tag(s) · 1 shared category(s) · Same language
convert Kotlin and Java objects to and from JSON with typed adapters
Kotlin - Koin10,024 Stars
2 shared tag(s) · 1 shared category(s) · Same language
configure lightweight dependency injection for Kotlin, Android, and Kotlin Multiplatform through concise module DSLs
Kotlin - Android Jetpack (AndroidX)6,105 Stars
2 shared tag(s) · 1 shared category(s) · Same language
use independently released Jetpack libraries for Android UI, architecture, data, and background work across platform versions
Kotlin - kotlinx.serialization5,948 Stars
2 shared tag(s) · 1 shared category(s) · Same language
Generate multi-format encoding and decoding code from Kotlin types
Kotlin
Report incorrect information
Tell us if any listing information is incorrect or outdated.