# realm/realm-kotlin

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/realm-realm-kotlin).**

1,092 stars · 95 forks · Kotlin · Apache-2.0

## Links

- GitHub: https://github.com/realm/realm-kotlin
- awesome-repositories: https://awesome-repositories.com/repository/realm-realm-kotlin.md

## Topics

`android` `android-library` `database` `kotlin` `kotlin-multiplatform` `kotlin-multiplatform-library` `kotlin-multiplatform-mobile` `kotlin-native` `nosql-database` `realtime-database`

## Description

Realm Kotlin is a local, object-oriented NoSQL database engine designed for Kotlin Multiplatform applications. It enables developers to persist structured application data directly as objects, eliminating the need for traditional relational table structures while ensuring information remains accessible during offline periods.

The library distinguishes itself through a compiler-plugin-based architecture that maps standard language classes to database models at compile time. It utilizes zero-copy memory mapping and a lazy-loading query engine to manage data efficiently, while a shared C++ core ensures consistent behavior across mobile and desktop environments.

Beyond core storage, the framework provides reactive data management, allowing application components to receive automatic updates whenever underlying records are modified. It also supports delta-based synchronization, which replicates only specific changes to a remote backend to maintain state consistency across multiple devices.

The project includes integrated tools for database performance benchmarking on both mobile and virtual machine environments. It also provides build system verification utilities to ensure stable dependency management across diverse project structures.

## Tags

### Data & Databases

- [Object-Oriented Mobile Database Management](https://awesome-repositories.com/f/data-databases/mobile-databases/object-oriented-mobile-database-management.md) — Provides a local, object-oriented database engine for persisting and synchronizing application data across mobile and desktop platforms.
- [Cross-Device State Synchronization](https://awesome-repositories.com/f/data-databases/cross-device-state-synchronization.md) — Maintains consistent application state across multiple devices and operating systems through database synchronization.
- [Multiplatform Persistence](https://awesome-repositories.com/f/data-databases/key-value-persistence-stores/multiplatform-persistence.md) — Stores structured application data locally on mobile and desktop devices to ensure offline accessibility.
- [Object Persistence](https://awesome-repositories.com/f/data-databases/object-persistence.md) — Facilitates saving structured application objects to a local database for offline access and cross-platform synchronization. ([source](https://github.com/realm/realm-kotlin/blob/main/README.md))
- [Object-Relational Mapping](https://awesome-repositories.com/f/data-databases/object-relational-mapping.md) — Maps complex application objects directly to persistent database records without requiring traditional relational table structures.
- [Zero-Copy Memory Mappings](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-storage-architectures/zero-copy-memory-mappings.md) — Maps database files directly into process memory to eliminate serialization overhead during read and write operations.
- [Data Change Observers](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/processing-pipelines/item-pipelines/data-change-observers.md) — Allows registering listeners on database queries to receive automatic updates whenever the underlying data set is modified. ([source](https://github.com/realm/realm-kotlin#readme))
- [Delta-Based Synchronization Engines](https://awesome-repositories.com/f/data-databases/data-synchronization/delta-based-synchronization-engines.md) — Replicates only incremental changes between local and remote states to minimize network bandwidth usage.
- [Data Type Mappings](https://awesome-repositories.com/f/data-databases/data-type-mappings.md) — Maps complex application objects to database records by defining custom classes for persistence. ([source](https://github.com/realm/realm-kotlin/custom-properties))
- [Database Connection Management](https://awesome-repositories.com/f/data-databases/database-connection-management.md) — Manages the lifecycle of local database connections through schema definitions and storage settings. ([source](https://github.com/realm/realm-kotlin#readme))
- [Object Mapping](https://awesome-repositories.com/f/data-databases/database-connectivity/dynamodb-connectors/object-mapping.md) — Maps complex application data models to database schemas for persistence across different hardware and operating environments.
- [Database Record Querying](https://awesome-repositories.com/f/data-databases/database-record-querying.md) — Provides an expressive predicate-based language for filtering and retrieving specific database records. ([source](https://github.com/realm/realm-kotlin/blob/main/README.md))
- [Database Schema Managers](https://awesome-repositories.com/f/data-databases/database-schema-managers.md) — Allows developers to declare database structures using standard language objects for reliable information management. ([source](https://github.com/realm/realm-kotlin#readme))
- [Lazy Database Loading](https://awesome-repositories.com/f/data-databases/lazy-database-loading.md) — Retrieves database records on demand to avoid loading entire result sets into application memory.
- [Reactive Data Queries](https://awesome-repositories.com/f/data-databases/reactive-data-queries.md) — Observes database queries to trigger automatic updates whenever underlying data sets change.
- [Reactive Databases](https://awesome-repositories.com/f/data-databases/reactive-databases.md) — Provides reactive data management that triggers automatic updates to application components whenever underlying database records are modified.
- [Record Deletion](https://awesome-repositories.com/f/data-databases/record-deletion.md) — Supports removing specific data entries from the database using targeted deletion operations on query results. ([source](https://github.com/realm/realm-kotlin#readme))

### Networking & Communication

- [Data Synchronization and Consistency](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-computing/data-synchronization-consistency.md) — Replicates local database changes to a remote backend and merges updates to maintain state consistency across devices. ([source](https://github.com/realm/realm-kotlin/blob/main/CHANGELOG.md))
- [Mobile Database Sync](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-computing/data-synchronization-consistency/distributed-file-synchronization/cross-device-data-availability/mobile-database-sync.md) — Replicates local database changes to a cloud backend to maintain consistent state across multiple devices.

### Part of an Awesome List

- [Native Interop](https://awesome-repositories.com/f/awesome-lists/devtools/native-interop.md) — Bridges high-level language code to a shared C++ core for consistent cross-platform database behavior.

### Software Engineering & Architecture

- [Compiler Plugin Serializers](https://awesome-repositories.com/f/software-engineering-architecture/compile-time-code-generation/compiler-plugin-serializers.md) — Generates database-compatible models from standard language classes at compile time using a compiler plugin.
- [Database Change Notifications](https://awesome-repositories.com/f/software-engineering-architecture/schema-based-state-validation/cross-state-validation/state-change-triggers/database-change-notifications.md) — Monitors database cursors to push automatic updates to observers when data modifications occur.
