Skip to content
agrosnerPublic

About

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

Resources

Stars

4.8k stars

Watchers

163 watching

Forks

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

163 watching

Forks

Releases

Packages

Used by

Contributors

Languages