freshcrate
Skin:/
Home > Databases > objectbox-java

objectbox-java

Database for Android and JVM - first and fast, lightweight on-device vector database

Why this rank:Strong adoptionRelease freshnessHealthy release cadence

Description

Database for Android and JVM - first and fast, lightweight on-device vector database

README

ObjectBox Java is a lightweight yet powerful on-device database & vector database designed specifically for Java and Kotlin applications. Store and manage data effortlessly in your Android or JVM Linux, macOS or Windows app with ObjectBox. Easily manage vector data alongside your objects and perform superfast on-device vector search to empower your apps with RAG AI, generative AI, and similarity search. Enjoy exceptional speed, battery-friendly resource usage, and environmentally-friendly development. 💚

ObjectBox provides a store with boxes to put objects into:

JVM + Java example

// Annotate a class to create a Box
@Entity
public class Person {
  private @Id long id;
  private String firstName;
  private String lastName;

  // Constructor, getters and setters left out for simplicity
}
 
BoxStore store = MyObjectBox.builder()
        .name("person-db")
        .build();
 
Box<Person> box = store.boxFor(Person.class);
 
Person person = new Person("Joe", "Green");
long id = box.put(person);    // Create
person = box.get(id);         // Read
person.setLastName("Black");
box.put(person);              // Update
box.remove(person);           // Delete

Android + Kotlin example

// Annotate a class to create a Box
@Entity
data class Person(
    @Id var id: Long = 0,
    var firstName: String? = null,
    var lastName: String? = null
)
 
val store = MyObjectBox.builder()
                .androidContext(context)
                .build()
 
val box = store.boxFor(Person::class)
 
var person = Person(firstName = "Joe", lastName = "Green")
val id = box.put()   // Create
person = box.get(id) // Read
person.lastName = "Black"
box.put(person)     // Update
box.remove(person)  // Delete

Table of Contents

Key Features

🧠 First on-device vector database: easily manage vector data and perform fast vector search 🏁 High performance: exceptional speed, outperforming alternatives like SQLite and Realm in all CRUD operations.
💚 Efficient Resource Usage: minimal CPU, power and memory consumption for maximum flexibility and sustainability.
🔗 Built-in Object Relations: built-in support for object relations, allowing you to easily establish and manage relationships between objects.
👌 Ease of use: concise API that eliminates the need for complex SQL queries, saving you time and effort during development.

Getting Started

Note

Prefer to look at example code? Check out our examples repository.

You can add the ObjectBox Java SDK using a:

ObjectBox tools and dependencies are available on the Maven Central repository.

The database libraries available for the ObjectBox Java SDK support:

  • JVM 8 or newer
    • Linux (x64, arm64, armv7)
    • macOS (x64, arm64)
    • Windows (x64)
  • Android 5.0 (API level 21) or newer

The ObjectBox Java SDK supports:

  • Java 8 or newer
  • Kotlin 1.7 or newer

The ObjectBox Gradle plugin supports:

  • Gradle 7.0 or newer
  • Android Gradle Plugin 8.1 or newer
  • JDK 11 or newer

Gradle setup

For Gradle projects, add the required plugins to your root Gradle script.

When using a TOML version catalog and plugins syntax (for alternatives see below):

# gradle/libs.versions.toml

[versions]
# For an Android project
agp = "AGP_VERSION"
# If using Kotlin
kotlin = "KOTLIN_VERSION"

# Define a variable for the version of the ObjectBox plugin
objectbox = "5.4.1"

[plugins]
# For an Android project, using Android Gradle Plugin 9.0 or newer
android-application = { id = "com.android.application", version.ref = "agp" }
kotlin-kapt = { id = "com.android.legacy-kapt", version.ref = "agp" }

# For an Android project, using Android Gradle Plugin 8.13 or older
android-application = { id = "com.android.application", version.ref = "agp" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" }

# For a JVM project, if using Kotlin 
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" }

# Add an alias for the ObjectBox plugin
objectbox = { id = "io.objectbox", version.ref = "objectbox" }
// build.gradle.kts

plugins {
    // For an Android project, using Android Gradle Plugin 9.0 or newer
    alias(libs.plugins.android.application) apply false
    alias(libs.plugins.kotlin.kapt) apply false  
  
    // For an Android project, using Android Gradle Plugin 8.13 or older
    alias(libs.plugins.android.application) apply false
    alias(libs.plugins.kotlin.android) apply false
    alias(libs.plugins.kotlin.kapt) apply false

    // For a JVM project, if using Kotlin
    alias(libs.plugins.kotlin.jvm) apply false
    alias(libs.plugins.kotlin.kapt) apply false
  
    // Add the ObjectBox plugin
    alias(libs.plugins.objectbox) apply false  
}
// settings.gradle.kts

pluginManagement {
    repositories {
        // Add Maven Central to the plugin repositories
        mavenCentral()
    }
}

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        // Add Maven Central to the dependency repositories
        mavenCentral()
    }
}

Then, in the Gradle script of your subproject apply the necessary plugins:

// app/build.gradle.kts

plugins {
    // For an Android project, using Android Gradle Plugin 9.0 or newer
    alias(libs.plugins.android.application)
    alias(libs.plugins.kotlin.kapt)
    
    // For an Android project, using Android Gradle Plugin 8.13 or older
    alias(libs.plugins.android.application)
    alias(libs.plugins.kotlin.android)
    alias(libs.plugins.kotlin.kapt)
    
    // For a JVM project
    id("application") // or id("java-library")
    // Optional, if using Kotlin
    alias(libs.plugins.kotlin.jvm)
    alias(libs.plugins.kotlin.kapt)

    // Finally, apply the ObjectBox plugin
    alias(libs.plugins.objectbox)
}

Finally, sync the Gradle project with your IDE (for ex. using "Sync Project with Gradle Files" in Android Studio).

Your project can now use ObjectBox, continue by defining entity classes.

Alternatives

Using plugins syntax with plugin IDs
// build.gradle.kts

plugins {
    // Add the ObjectBox plugin
    id("io.objectbox") version "5.4.1" apply false
}
// settings.gradle.kts

pluginManagement {
    repositories {
        // Add Maven Central to the plugin repositories
        mavenCentral()
    }
}

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        // Add Maven Central to the dependency repositories
        mavenCentral()
    }
}
Using buildscript syntax (KTS)
// build.gradle.kts

buildscript {
    // Define a variable for the ObjectBox plugin version
    val objectboxVersion by extra("5.4.1")
  
    repositories {
        // Add Maven Central to the plugin repositories     
        mavenCentral()    
    }
  
    dependencies {
        // Add the ObjectBox plugin
        classpath("io.objectbox:objectbox-gradle-plugin:$objectboxVersion")
    }
}

allprojects {
    repositories {
        // Add Maven Central to the dependency repositories
        mavenCentral()
    }
}
Using buildscript syntax (Groovy)
// build.gradle

buildscript {
    // Define a variable for the ObjectBox plugin version
    ext.objectboxVersion = "5.4.1"
  
    repositories {        
        // Add Maven Central to the plugin repositories
        mavenCentral()    
    }
  
    dependencies {
        // Add the ObjectBox plugin
        classpath("io.objectbox:objectbox-gradle-plugin:$objectboxVersion")
    }
}

allprojects {
    repositories {
        // Add Maven Central to the dependency repositories
        mavenCentral()
    }
}

Then, in the Gradle script of your subproject apply the necessary plugins using their IDs:

// app/build.gradle.kts

plugins {
    // For an Android project, using Android Gradle Plugin 9.0 or newer
    id("com.android.application") // or id("com.android.library")
    id("com.android.legacy-kapt") 
  
    // For an Android project, using Android Gradle Plugin 8.13 or older
    id("com.android.application") // or id("com.android.library")
    id("org.jetbrains.kotlin.android") // or kotlin("android")
    id("org.jetbrains.kotlin.kapt") // or kotlin("kapt")  
  
    // For a JVM project
    id("application") // or id("java-library")
    // Optional, if using Kotlin
    id("org.jetbrains.kotlin.jvm") // or kotlin("jvm")
    id("org.jetbrains.kotlin.kapt") // or kotlin("kapt")  

    // Finally, apply the ObjectBox plugin
    id("io.objectbox")
}

Maven setup

This is currently only supported for JVM projects.

To set up a Maven project, see the README of the Java Maven example project.

Frequently Asked Questions and Troubleshooting

If you encounter any problems, check out the FAQ and Troubleshooting pages.

Why use ObjectBox for Java data management?

ObjectBox is a NoSQL Java database designed for local data storage on resource-restricted devices, prioritizing offline-first functionality. It is a smart and sustainable choice for local data persistence in Java and Kotlin applications. It offers efficiency, ease of use, and flexibility.

Fast but resourceful

Optimized for speed and minimal resource consumption, ObjectBox is an ideal solution for mobile devices. It has excellent performance, while also minimizing CPU, RAM, and power usage. ObjectBox outperforms SQLite and Realm across all CRUD (Create, Read, Update, Delete) operations. Check out our Performance Benchmarking App repository.

Simple but powerful

With its concise language-native API, ObjectBox simplifies development by requiring less code compared to SQLite. It operates on plain objects (POJOs) with built-in relations, eliminating the need to manage rows and columns. This approach is efficient for handling large data volumes and allows for easy model modifications.

Functionality

💐 Queries: filter data as needed, even across relations
đŸ’ģ Multiplatform: supports Android and JVM on Linux (also on ARM), Windows and macOS
🌱 Scalable: handling millions of objects resource-efficiently with ease
đŸĻŽ Statically typed: compile time checks & optimizations
📃 Automatic schema migrations: no update scripts needed

And much more than just data persistence
🔄 ObjectBox Sync: keeps data in sync between devices and servers
🕒 ObjectBox TS: time series extension for time based data

Community and Support

❤ Tell us what you think! Share your thoughts through our Anonymous Feedback Form.

At ObjectBox, we are dedicated to bringing joy and delight to app developers by providing intuitive and fun-to-code-with APIs. We genuinely want to hear from you: What do you love about ObjectBox? What could be improved? Where do you face challenges in everyday app development?

We eagerly await your comments and requests, so please feel free to reach out to us:

  • Add GitHub issues
  • Upvote important issues 👍
  • Drop us a line via contact[at]objectbox.io
  • ⭐ us on GitHub if you like what you see!

Thank you! Stay updated with our blog.

Changelog

For notable and important changes in new releases, read the changelog.

Other languages/bindings

ObjectBox supports multiple platforms and languages. Besides JVM based languages like Java and Kotlin, ObjectBox also offers:

  • C and C++ SDK: native speed with zero copy access to FlatBuffer objects
  • Dart and Flutter SDK: cross-platform for mobile and desktop apps
  • Go SDK: great for data-driven tools and embedded server applications
  • Swift SDK: build fast mobile apps for iOS (and macOS)

License

Copyright 2017-2025 ObjectBox Ltd.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Note that this license applies to the code in this repository only. See our website on details about all licenses for ObjectBox components.

Release History

VersionChangesUrgencyDate
V5.4.2- Update Android and JVM libraries to database version `5.3.2-2026-05-05` - Fixed a corner case with "unique replace on conflict" and absent (e.g. null) sync clock value - Internal fixes and improvements High5/6/2026
V5.4.1- Update Android and JVM libraries to database version `5.3.1-2026-03-26` ### Sync - Critical fix for sync clock property handlingMedium3/30/2026
V5.4.0- Update Android and JVM libraries to database version `5.3.0-2026-03-23` - Admin: Status tab "Count and Sizes" and "System and Info" improved ### Sync - **Customizable conflict resolution** via the new annotations `@SyncClock` and `@SyncPrecedence` (see [docs](https://sync.objectbox.io/syncing-concurrent-changes) for details) - Fix bad Sync client state after multiple full sync messages were interrupted - Fix adding indexes to Sync types Medium3/24/2026
V5.3.0- Gradle plugin: to apply the plugin, it is no longer necessary to add a manual mapping of the plugin ID in your projects Gradle settings file. This was resolved by publishing Gradle plugin marker artifacts. [#960](https://github.com/objectbox/objectbox-java/issues/960) - Gradle plugin: it is no longer necessary to apply the plugin after the dependencies block when manually including ObjectBox dependencies. - Update database libraries for Android and JVM to database version `5.2.0-next-2026-03Low3/11/2026
V5.2.0- The [ObjectBox Gradle plugin](https://github.com/objectbox/objectbox-java-generator) requires JDK 11 and Android Gradle Plugin 8.1 or newer. - Update database libraries for Android and JVM to database version `5.1.1-pre-2026-02-16`. - Admin: new "Counts and Sizes" view (via Status page) to give an overview over all types their object counts and sizes - Admin: fix reload via browser to stay on the page - Admin: schema view to display flags as text - Admin: refresh button for the data view Low2/17/2026
V5.1.0- Add [ObjectBoxThreadPoolExecutor](objectbox-java/src/main/java/io/objectbox/ObjectBoxThreadPoolExecutor.java), a default implementation of a `ThreadPoolExecutor` that properly cleans up thread-local Box resources. - Add methods `newCachedThreadPoolExecutor()` and `newFixedThreadPoolExecutor()` to `BoxStore` to help create instances of `ObjectBoxThreadPoolExecutor` for common uses. - Add methods `newCachedThreadPoolDispatcher()` and `newFixedThreadPoolDispatcher()` to the Kotlin extension funLow1/26/2026
V5.0.1### Sync - Enables **User-Specific Data Sync** in combination with [Sync Server version 5.0+](https://sync.objectbox.io/sync-server/changelog). - Support configuring [Sync filter](https://sync.objectbox.io/sync-server/sync-filters) variables on `SyncClient`. ### Regular updates - Update runtime libraries for Android and JVM to database version `5.0.0-2025-09-27`. - Android: Prior to Android 8.0, don't crash when inserting objects with string lists whose size exceeds the local Low9/30/2025
V4.3.1- Requires at least Kotlin compiler and standard library 1.7. - Data Observers: closing a Query now waits on a running publisher to finish its query, preventing a VM crash. [#1147](https://github.com/objectbox/objectbox-java/issues/1147) - Update database libraries for Android and JVM to version `4.3.1` (include database version `4.3.1-2025-08-02`).Low8/12/2025
V4.3.0- Basic support for boolean array properties (`boolean[]` in Java or `BooleanArray` in Kotlin). - The Windows database library now statically links the MSVC runtime to avoid crashes in incompatible `msvcp140.dll` shipped with some JDKs. - External property types (via [MongoDB connector](https://sync.objectbox.io/mongodb-sync-connector)): - add `JSON_TO_NATIVE` to support sub (embedded/nested) documents/arrays in MongoDB - support ID mapping to UUIDs (v4 and v7) - Admin: add class anLow5/13/2025
V4.2.0- Add new query conditions `equalKeyValue`, `greaterKeyValue`, `lessKeyValue`, `lessOrEqualKeyValue`, and `greaterOrEqualKeyValue` that are helpful to write complex queries for [string maps](https://docs.objectbox.io/advanced/custom-types#flex-properties). These methods support `String`, `long` and `double` data types for the values in the string map. - Deprecate the `containsKeyValue` condition, use the new `equalKeyValue` condition instead. - Android: to build, at least Android PluginLow3/5/2025
V4.1.0- Vector Search: add new `VectorDistanceType.GEO` distance type to perform vector searches on geographical coordinates. This is particularly useful for location-based applications. - Android: require Android 5.0 (API level 21) or higher. - Note on Windows JVM: We've seen crashes on Windows when creating a BoxStore on some JVM versions. If this should happen to you, make sure to update your JVM to the latest patch release (8.0.432+6, 11.0.25+9, 17.0.13+11 and 21.0.5+11-LTS are known toLow1/30/2025
V4.0.3* Make closing the Store more robust. In addition to transactions, it also waits for ongoing queries. This is just an additional safety net. Your apps should still make sure to finish all Store operations, like queries, before closing it. * [Flex properties](https://docs.objectbox.io/advanced/custom-types#flex-properties) support `null` map and list values. * Some minor vector search performance improvements. ### Sync * **Fix a serious regression, please update as soon as possible.** Low10/21/2024
V4.0.2- Add convenience `oneOf` and `notOneOf` conditions that accept `Date` to avoid manual conversion using `getTime()`. - When `BoxStore` is closing, briefly wait on active transactions to finish. - Guard against crashes when `BoxStore` was closed, but database operations do still occur concurrently (transactions are still active). Low8/20/2024
V4.0.1- Examples: added [Vector Search example](https://github.com/objectbox/objectbox-examples/tree/main/java-main-vector-search) that demonstrates how to perform on-device [approximate nearest neighbor (ANN) search](https://docs.objectbox.io/on-device-vector-search). - Revert deprecation of `Box.query()`, it is still useful for queries without any condition. - Add note on old query API methods of `QueryBuilder` that they are not recommended for new projects. Use [the new query APIs](https://docs.oLow6/3/2024
V4.0.0**ObjectBox now supports [Vector Search](https://docs.objectbox.io/ann-vector-search)** to enable efficient similarity searches. This is particularly useful for AI/ML/RAG applications, e.g. image, audio, or text similarity. Other use cases include semantic search or recommendation engines. Create a Vector (HNSW) index for a floating point vector property. For example, a `City` with a location vector: ```java @Entity public class City { @HnswIndex(dimensions = 2) float[] Low5/16/2024
V3.8.0* Support creating file-less in-memory databases, e.g. for caching and testing. To create one use `inMemory()` when building a `BoxStore`: ```java store = MyObjectBox.builder() .androidContext(context) .inMemory("test-db") .build(); ``` See the `BoxStoreBuilder.inMemory()` documentation for details. * Change `BoxStore.deleteAllFiles()` to support deleting an in-memory database. * The `maxDataSizeInKByte()` option when building a store is ready for pLow2/13/2024
V3.7.1- Throw an exception instead of crashing when trying to create a query on a closed store. [#1154](https://github.com/objectbox/objectbox-java/issues/1154) - The Gradle plugin now requires at least Gradle 7.0 and Android Gradle Plugin 4.1. - The Android library now requires Android 4.4 (API 19) or newer.Low11/8/2023
V3.7.0- A new key/value validation option `validateOnOpenKv()` is available on `MyObjectBox.builder()` to help diagnose `FileCorruptException: Corrupt DB, min key size violated` issues. If enabled, the `build()` call will throw a `FileCorruptException` if corruption is detected with details on which key/value is affected. [#1143](https://github.com/objectbox/objectbox-java/issues/1143) - Admin: integer and floating point arrays introduced with the previous release are now nicely displayed and collapsLow8/23/2023
V3.6.0- **Support for integer and floating point arrays**: store - `short[]`, `char[]`, `int[]`, `long[]` and - `float[]` and `double[]` (or their Kotlin counterparts, e.g. `FloatArray`) without a converter. A simple example is a shape entity that stores a palette of RGB colors: ```java @Entity public class Shape { @Id public long id; // An array of RGB color values that are used by this shape. public int[] palette; } // Find all shapes Low5/16/2023
V3.5.1- Fixes writes failing with "error code -30786", which may occur in some corner cases on some devices. #1099 - Add docs to `DbSchemaException` on how to resolve its typical causes. **We're hiring!** 😎 We believe resource-efficient coding is still cool and are [looking for a C / C++ developer](https://objectbox.io/jobs/objectbox-senior-c-plusplus-developer/) who shares our sentiment.Low3/21/2023
V3.5.0**This release includes breaking changes to generated code. If you encounter build errors, make sure to clean and build your project (e.g. Build > Rebuild project in Android Studio).** - Add `Query.copy()` and `QueryThreadLocal` to obtain a `Query` instance to use in different threads. [Learn more about re-using queries](https://docs.objectbox.io/queries#reusing-queries-and-parameters). #1071 - Add `relationCount` query condition to match objects that have a certain number of related objectsLow12/7/2022
V3.4.0- Add `findFirstId()` and `findUniqueId()` to `Query` which just return the ID of a matching object instead of the full object. - Experimental support for setting a maximum data size via the `maxDataSizeInKByte` property when building a Store. This is different from the existing `maxSizeInKByte` property in that it is possible to remove data after reaching the limit and continue to use the database. See its documentation for more details. - Fix a crash when querying a value-based index (e.g. `Low10/18/2022
V3.3.1**Note: V3.3.0 contains a bug preventing correct transformation of some classes, please use V3.3.1 instead.** - Gradle plugin: use new transform API with Android Plugin 7.2.0 and newer. Builds should be slightly faster as only entity and cursor classes and only incremental changes are transformed. #1078 - Gradle plugin: improve detection of applied Android plugins, improve registration of byte-code transform for non-Android Java projects, add check for minimum supported version of Gradle. Low9/6/2022
V3.2.1- Resolve an issue that prevented resources from getting cleaned up after closing `BoxStore`, causing the reference table to overflow when running many instrumentation tests on Android. #1080 - Plugin: support Kotlin 1.7. #1085 Low7/5/2022
V3.2.0- Query: throw `IllegalStateException` when query is closed instead of crashing the virtual machine. #1081 - BoxStore and Query now throw `IllegalStateException` when trying to subscribe but the store or query is closed already. - Various internal improvements including minor optimizations for binary size and performance.Low6/21/2022
V3.1.3- Windows: using a database directory path that contains unicode (UTF-8) characters does not longer create an additional, unused, directory with garbled characters. - Query: when using a negative offset or limit display a helpful error message. - Processor: do not crash, but error if ToOne/ToMany type arguments are not supplied (e.g. `ToOne` instead of `ToOne<Entity>`). - The Data Browser has been renamed to [ObjectBox Admin](https://docs.objectbox.io/data-browser). Deprecated `AndroidObjectBLow5/11/2022
V3.1.2This release only contains bug fixes for the Android library when used with [ObjectBox for Dart/Flutter](https://github.com/objectbox/objectbox-dart).Low2/22/2022
V3.1.1This release only contains bug fixes. - Fix incorrect unique constraint violation if an entity contains at least two unique properties with a certain combination of non-unique indexes. - Data Browser/Admin: improved support when running multiple on the same host, but a different port (e.g. `localhost:8090` and `localhost:8091`).Low1/26/2022
V3.1.0[Read the blog post](https://objectbox.io/objectbox-java-database-flex-type/) with more details and code examples for the new flex properties and query conditions. - Support Flex properties. Expanding on the string and flexible map support in `3.0.0`, it is now possible to add a property using `Object` in Java or `Any?` in Kotlin. These "flex properties" now allow to store values of various types like integers, floating point values, strings and byte arrays. Or lists and maps (using string keLow1/10/2022
V3.0.1- Fixes the ObjectBox plugin crashing when applied to an Android project that does not use the Kotlin plugin. **See the [3.0.0 release notes](https://github.com/objectbox/objectbox-java/releases/tag/V3.0.0) for a list of important changes.** [All release notes & docs](https://docs.objectbox.io)Low10/19/2021
V3.0.0**Note: this version contains a bug that prevents usage with Android Java only projects. Use `3.0.1` instead.** * [A new Query API](https://docs.objectbox.io/queries#new-query-api) is available that works similar to the [ObjectBox for Dart/Flutter](https://pub.dev/packages/objectbox) Query API and makes it easier to create nested conditions. #201 ```kotlin // equal AND (less OR oneOf) val query = box.query( User_.firstName equal "Joe" and (User_.age less 12 Low10/19/2021
V2.9.1This is the first release **available on the Central repository** (Sonatype OSSRH). Make sure to adjust your `build.gradle` files accordingly: ``` repositories { mavenCentral() } ``` Changes: - Javadoc for `find(offset, limit)` of `Query` is more concrete on how offset and limit work. - Javadoc for between conditions explicitly mentions it is inclusive of the two given values. - Sync: Instead of the same name and a Maven classifier, Sync artifacts now use a different name. E.g. `objLow3/16/2021
V2.9.0- Query: Add `lessOrEqual` and `greaterOrEqual` conditions for long, String, double and byte[] properties. - Support Java applications on ARMv7 and AArch64 devices. #657 To use, add `implementation "io.objectbox:objectbox-linux-armv7:$objectboxVersion` or `implementation "io.objectbox:objectbox-linux-arm64:$objectboxVersion` to your dependencies. Otherwise the setup is identical with [Java Desktop Apps](https://docs.objectbox.io/java-desktop-apps#add-libraries-for-distribution). - Resolve rLow2/22/2021
V2.8.1- Minor improvements to [Sync](https://objectbox.io/sync/) tooling. See the [2.8.0 release notes](https://github.com/objectbox/objectbox-java/releases/tag/V2.8.0) for the latest changes. [Previous release notes](https://docs.objectbox.io)Low11/23/2020
V2.8.0- Added [Sync](https://objectbox.io/sync/) API. - Fixed "illegal reflective access" warning in the plugin. - The data browser notification is now silent by default, for quieter testing. #903 - Updated and improved API documentation in various places (e.g. on how `Query.findLazy()` and `Query.findLazyCached()` work with `LazyList` #906). - Print full name and link to element for `@Index` and `@Id` errors. #902 - Explicitly allow to remove a `DbExceptionListener` by accepting null values forLow11/23/2020
V2.7.1- Fix exception handling during `BoxStoreBuilder.build()` to allow retries. For example, after a `FileCorruptException` you could try to open the database again using the recently added `usePreviousCommit()` option. - Add `PagesCorruptException` as a special case of `FileCorruptException`. - `DbExceptionListener` is called more robustly. [Previous release notes](https://docs.objectbox.io)Low8/24/2020
V2.7.0* Several database store improvements for BoxStore and BoxStoreBuilder * New configuration options to open the database, e.g. a new read-only mode and using the previous data snapshot (second last commit) to potentially recover data. * Database validation. We got a GitHub report indicating that some specific devices ship with a broken file system. While this is not a general concern (file systems should not be broken), we decided to detect some typical problems and provide some options to Low8/3/2020
V2.5.0* Important bug fix - please update if you are using N:M relations! * Several improvements, e.g. for property queries See [changelogs](https://docs.objectbox.io/#objectbox-changelog) for details.Low6/30/2020
V2.6.0- **`@DefaultValue("")` annotation.** Annotated properties will return the specified default value (currently only `""` is supported) instead of null. This is useful if a not-null property is added to an entity, but there are existing entities in the database that will return null for the new property. Note: naming is not final, it may change to e.g. `@AbsentValue("")`. #157 - **RxJava 3 support library `objectbox-rxjava3`.** Also includes Kotlin extension functions to more easily obtain Rx tyLow6/30/2020
V2.6.0-RChttps://docs.objectbox.io/#v-2-6-0-rc-2020-04-28Low5/4/2020
V3.0.0-alpha2**Note: this is a preview release. Future releases may add, change or remove APIs.** - Add Kotlin infix extension functions for creating conditions using the new Query API. See [the documentation for examples](https://docs.objectbox.io/queries#new-query-api). - The old Query API now also supports setting an alias after combining conditions using `and()` or `or()`. #834 - Add documentation that string property conditions ignore case by default. Point to using case-sensitive conditions for hiLow3/24/2020
V3.0.0-alpha1**Note: this is a preview release. Future releases may add, change or remove APIs.** * [A new Query API](https://docs.objectbox.io/queries#new-query-api) provides support for nested AND and OR conditions. See [the documentation](https://docs.objectbox.io/queries#new-query-api) for examples and notable changes. #201 * Subscriptions now publish results in serial instead of in parallel (using a single thread vs. multiple threads per publisher). Publishing in parallel could previously lead to ouLow3/9/2020
V2.5.1* Support Android Gradle Plugin 3.6.0. #817 * Support for incremental annotation processing. #620 It is off by default. To turn it on set `objectbox.incremental` to true in `build.gradle`: ```groovy android { defaultConfig { javaCompileOptions { annotationProcessorOptions { arguments = [ "objectbox.incremental" : "true" ] } } } } ``` https://docs.objectbox.io/#v-2-5-1-2020-02-10Low2/17/2020
V2.4.1- More helpful error messages if annotations can not be combined. - Improved documentation on various annotations. https://docs.objectbox.io/#v-2-4-1-2019-10-29Low11/4/2019
V2.4.0This release has mainly quality of life improvements and resolves reported issues. Android: after updating to this version your app might require changes before it can build successfully. See the upgrade notes for details: https://docs.objectbox.io/#v-2-4-0-2019-10-15 Release notes: https://docs.objectbox.io/Low10/15/2019
V2.4.0-RCChangelog: https://docs.objectbox.io/ This is not the final release; and we will be very happy to get your feedback on it!Low10/3/2019
V2.3.4Changelog: https://docs.objectbox.io/Low3/20/2019
V2.3.3Fixed a bug introduced by V2.3.2 affecting older Android versions 4.3 and below (#656) Changelog: https://docs.objectbox.io/Low2/14/2019
V2.3.1Please update - details at https://docs.objectbox.io/Low1/8/2019
V2.3.0Check https://docs.objectbox.io/ for full changelog.Low12/30/2018
V2.1.0Minor improvements and fixes, see https://docs.objectbox.io/#v-2-1-2018-08-16 for detailsLow8/16/2018

Dependencies & License Audit

Loading dependencies...

Similar Packages

arcadedbArcadeDB Multi-Model Database, one DBMS that supports SQL, Cypher, Gremlin, HTTP/JSON, MongoDB and Redis. ArcadeDB is a conceptual fork of OrientDB, the first Multi-Model DBMS. ArcadeDB supports Vecto26.6.1
DBreezeC# .NET NOSQL ( key value, object store embedded TextSearch SemanticSearch Vector layer ) ACID multi-paradigm database management system.v1.138
crateCrateDB is a distributed and scalable SQL database for storing and analyzing massive amounts of data in near real-time, even with complex queries. It is PostgreSQL-compatible, and based on Lucene.6.3.2
svg-to-composeConvert SVG and Android Vector Drawables (XML) into Jetpack Compose ImageVector code. CLI, Gradle plugin, and online playground. Kotlin Multiplatform supported.2.2.1
SharpCoreDBHigh-Performance Encrypted Database for .NET 10 | Embedded + gRPC Server | Vector Search â€ĸ GraphRAG â€ĸ AnalyticsV1.8.0.0

More in Databases

milvusMilvus is a high-performance, cloud-native vector database built for scalable vector ANN search
WeKnoraLLM-powered framework for deep document understanding, semantic retrieval, and context-aware answers using RAG paradigm.
ai-real-estate-assistantAdvanced AI Real Estate Assistant using RAG, LLMs, and Python. Features market analysis, property valuation, and intelligent search.
alibabacloud-adb20211201Alibaba Cloud adb (20211201) SDK Library for Python