Skip to content

Latest commit

 

History

3,382 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DBFlow

JitPack.io

A Kotlin Multiplatform SQLite library. Annotate tables and databases; a compiler plugin generates adapters and a typed query DSL.

Targets: Android, JVM, iOS, macOS.

@Database(version = 1, tables = [User::class])
abstract class AppDatabase : DBFlowDatabase<AppDatabase>() {
    abstract val userAdapter: ModelAdapter<User>
}

@Table
data class User(
    @PrimaryKey(autoincrement = true) val id: Int = 0,
    val name: String,
)
import com.dbflow5.database.createDB

val db = createDB<AppDatabase>(context) { copy(name = "App") }

db.writableTransaction {
    userAdapter.save(User(name = "Ada"))
    val users = (userAdapter.select() where (User.name eq "Ada")).list()
}

What’s included

Module Role
lib Runtime, query DSL, transactions, Flow observers
core Annotations and converters (pulled in by lib)
compiler + plugin com.dbflow5 Table companions (adapters + column properties), *_Adapter helpers, *_Database
sqlcipher Encrypted Android databases
livedata / paging / reactive-streams Android extras

Coroutines are built into lib. There is no separate coroutines artifact.

Docs

Usage lives under usage2/. The table of contents is in SUMMARY.md.

Published HTML: dbflow.gitbook.io/dbflow

Install

See Including in a project for version catalogs, the compiler plugin, and generated sources.

Quick start with a version catalog:

[plugins]
dbflow = { id = "com.dbflow5", version = "5.0.0-alpha2" }
plugins {
    kotlin("multiplatform")
    alias(libs.plugins.dbflow)
}

That is the whole setup. The plugin adds the com.dbflow5:lib dependency, the compiler plugin, the generated-sources directory on commonMain, -lsqlite3 linker opts for native binaries, and a dbflowGenerate task that keeps generated code in sync with your models.

Until the plugin is on Maven Central, use a composite build of this repo.

Contribute

  1. Match existing Kotlin style.
  2. Keep the change scoped to the issue.
  3. Open PRs against master.

Maintainers

Started at Raizlabs / Rightpoint. Maintained by agrosner.

About

A blazing fast, powerful, and very simple ORM android database library that writes database code for you.

Resources

Stars

4.8k stars

Watchers

159 watching

Forks

Releases

Packages

Used by

Contributors

Languages