# objectbox/objectbox-java

**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/objectbox-objectbox-java).**

4,612 stars · 307 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/objectbox/objectbox-java
- Homepage: https://objectbox.io
- awesome-repositories: https://awesome-repositories.com/repository/objectbox-objectbox-java.md

## Topics

`android` `database` `edge` `embedded` `java` `kotlin` `mobile` `nosql` `sqlite` `sustainable` `sync` `vector`

## Description

ObjectBox Java is an embedded NoSQL object database for Java and Android that stores data objects directly without relational mapping. It functions as a native-process storage engine, allowing applications to persist plain Java or Kotlin classes as entities.

The project distinguishes itself with an on-device vector database capability, utilizing HNSW indexes to perform approximate nearest neighbor searches and semantic similarity queries. It also includes a locally hosted web-based browser for visualizing data objects, schemas, and dependency diagrams.

The database covers a broad range of data management capabilities, including ACID-compliant atomic transactions, reactive data streams for real-time observations, and cross-platform data synchronization. Its storage surface supports object-relation mapping with lazy loading, property-based filtering, and the ability to initialize the data store in memory for caching or automated testing.

## Tags

### Data & Databases

- [Embedded Database Engines](https://awesome-repositories.com/f/data-databases/embedded-database-engines.md) — Functions as a native-process embedded database engine that runs directly within the application to eliminate network latency.
- [Object-Oriented Databases](https://awesome-repositories.com/f/data-databases/object-oriented-databases.md) — Provides an embedded object-oriented database that stores Java and Kotlin classes directly without relational mapping.
- [Object-Relational Mapping](https://awesome-repositories.com/f/data-databases/object-relational-mapping.md) — Stores Java or Kotlin classes as database entities, eliminating the need for relational mapping tables.
- [Collection Querying](https://awesome-repositories.com/f/data-databases/collection-querying.md) — Retrieves objects from the database using equality or range filters and applies specific sort orders. ([source](https://docs.objectbox.io/tutorial-demo-project))
- [Mobile Storage Engines](https://awesome-repositories.com/f/data-databases/data-persistence-frameworks/mobile-storage-engines.md) — Provides a high-performance embedded storage engine optimized for mobile and JVM environments.
- [Atomic Transactions](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/connection-transaction-management/atomic-transactions.md) — Wraps multiple data operations into single atomic units to ensure ACID consistency. ([source](https://docs.objectbox.io/transactions))
- [Embedded Local Storage](https://awesome-repositories.com/f/data-databases/embedded-local-storage.md) — Saves application objects directly to a local database on Android or JVM for fast offline access.
- [NoSQL Databases](https://awesome-repositories.com/f/data-databases/nosql-databases.md) — Implements a non-relational object store for persisting plain Java classes as entities.
- [Object Storage Database Engines](https://awesome-repositories.com/f/data-databases/object-storage-database-engines.md) — Acts as an object storage engine that runs in-process for high-performance local data persistence. ([source](https://docs.objectbox.io/java-desktop-apps))
- [Object Property Filtering](https://awesome-repositories.com/f/data-databases/property-based-filtering/application-property-filters/object-property-filtering.md) — Retrieves specific result sets by applying property conditions and logical operators to stored objects. ([source](https://docs.objectbox.io/queries))
- [Filtered and Ordered Queries](https://awesome-repositories.com/f/data-databases/query-sorting/query-filters/filtered-and-ordered-queries.md) — Sorts returned objects based on specific properties with configurable direction and null handling. ([source](https://docs.objectbox.io/queries))
- [ACID-Compliant](https://awesome-repositories.com/f/data-databases/storage-engines/acid-compliant.md) — Provides ACID-compliant atomic transactions to ensure data consistency and prevent partial updates during storage operations.
- [Entity Property Queries](https://awesome-repositories.com/f/data-databases/string-data-structures/property-querying/entity-property-queries.md) — Retrieves and manages stored entities using a dedicated interface tailored to specific object types. ([source](https://cdn.jsdelivr.net/gh/objectbox/objectbox-java@main/README.md))
- [HNSW Indexes](https://awesome-repositories.com/f/data-databases/vector-indexing/hnsw-indexes.md) — Implements HNSW indexes to enable high-performance approximate nearest neighbor searches for vector embeddings.
- [On-Device Vector Databases](https://awesome-repositories.com/f/data-databases/vector-indexing/hnsw-indexes/on-device-vector-databases.md) — Provides a local vector database utilizing HNSW indexes for on-device approximate nearest neighbor searches.
- [Vector Search](https://awesome-repositories.com/f/data-databases/vector-search.md) — Performs approximate nearest neighbor searches and semantic similarity queries using HNSW indexes on-device.
- [Binary Serialization Formats](https://awesome-repositories.com/f/data-databases/binary-serialization-formats.md) — Utilizes a compact binary serialization format to efficiently persist primitives and complex collections on-device.
- [Cross-Client Data Synchronization](https://awesome-repositories.com/f/data-databases/cross-client-data-synchronization.md) — Synchronizes objects between on-device storage and other platforms to maintain data consistency. ([source](https://docs.objectbox.io/))
- [In-Memory Data Stores](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-storage-architectures/in-memory-data-stores.md) — Supports an in-memory storage mode for high-speed data access during caching or automated testing.
- [Data Change Observers](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/processing-pipelines/item-pipelines/data-change-observers.md) — Offers reactive data observation to notify applications of database changes in real time.
- [Asynchronous Transaction APIs](https://awesome-repositories.com/f/data-databases/database-transactions/asynchronous-transaction-apis.md) — Executes database transactions on separate threads to avoid blocking the main application execution. ([source](https://docs.objectbox.io/transactions))
- [Entity Modeling](https://awesome-repositories.com/f/data-databases/entity-modeling.md) — Supports structured data modeling in Kotlin using standard classes and sealed subclasses for inheritance. ([source](https://docs.objectbox.io/kotlin-support))
- [Automatic Persistence](https://awesome-repositories.com/f/data-databases/entity-relationships/automatic-persistence.md) — Automatically maps application classes to database entities to handle the persistence of new objects. ([source](https://docs.objectbox.io/entity-annotations))
- [In-Memory Databases](https://awesome-repositories.com/f/data-databases/in-memory-databases.md) — Supports initializing the data store in RAM for high-speed caching and automated testing. ([source](https://docs.objectbox.io/release-history))
- [Lazy-Loaded Object Relations](https://awesome-repositories.com/f/data-databases/lazy-database-loading/lazy-loaded-object-relations.md) — Provides lazy-loaded one-to-one relations using proxies to optimize initial query time and memory. ([source](https://docs.objectbox.io/relations))
- [Object Relation Lazy Loading](https://awesome-repositories.com/f/data-databases/lazy-loading-data-adapters/network-content-lazy-loading/metadata-lazy-loading/object-relation-lazy-loading.md) — Implements proxy-based lazy loading to minimize memory usage by retrieving related objects only upon first access.
- [Object Identifier Management](https://awesome-repositories.com/f/data-databases/object-identifier-management.md) — Manages unique integer identifiers for objects to facilitate precise referencing and retrieval of data. ([source](https://docs.objectbox.io/entity-annotations))
- [Embedded Collection Persistence](https://awesome-repositories.com/f/data-databases/object-persistence/embedded-collection-persistence.md) — Persists lists and arrays of fixed-type values and binary blobs directly within a data object. ([source](https://docs.objectbox.io/property-types))
- [Object-Relational Mapping Associations](https://awesome-repositories.com/f/data-databases/object-relational-mapping-associations.md) — Links objects via integer references to establish one-to-one and one-to-many associations between entities. ([source](https://docs.objectbox.io/property-types))
- [Reactive Data Streams](https://awesome-repositories.com/f/data-databases/reactive-data-streams.md) — Converts database subscriptions into asynchronous data streams to drive reactive user interface updates. ([source](https://docs.objectbox.io/kotlin-support))
- [Entity Associations](https://awesome-repositories.com/f/data-databases/relational-data-modeling/entity-associations.md) — Enables the definition of associations and dependencies between data entities using variable properties. ([source](https://docs.objectbox.io/kotlin-support))

### Artificial Intelligence & ML

- [Semantic Vector Search](https://awesome-repositories.com/f/artificial-intelligence-ml/vector-embeddings/semantic-vector-search.md) — Enables retrieval of objects based on the mathematical distance between query and document embeddings. ([source](https://docs.objectbox.io/on-device-vector-search))

### Development Tools & Productivity

- [Database Object Browsers](https://awesome-repositories.com/f/development-tools-productivity/database-object-browsers.md) — Ships a locally hosted web browser for visualizing data objects, schemas, and dependency diagrams. ([source](https://docs.objectbox.io/data-browser))

### Software Engineering & Architecture

- [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) — Provides triggers and observers that notify the application when specific database objects are modified. ([source](https://docs.objectbox.io/data-observers-and-rx))

### Part of an Awesome List

- [Persistence](https://awesome-repositories.com/f/awesome-lists/data/persistence.md) — Superfast object-oriented database.
