All Projects → objectbox → Objectbox Java

objectbox / Objectbox Java

Licence: apache-2.0
ObjectBox is a superfast lightweight database for objects

Programming Languages

java
68154 projects - #9 most used programming language
kotlin
9241 projects

Projects that are alternatives of or similar to Objectbox Java

Orientdb
OrientDB is the most versatile DBMS supporting Graph, Document, Reactive, Full-Text and Geospatial models in one Multi-Model product. OrientDB can run distributed (Multi-Master), supports SQL, ACID Transactions, Full-Text indexing and Reactive Queries. OrientDB Community Edition is Open Source using a liberal Apache 2 license.
Stars: ✭ 4,394 (+11.24%)
Mutual labels:  database, nosql, performance
Libmdbx
One of the fastest embeddable key-value ACID database without WAL. libmdbx surpasses the legendary LMDB in terms of reliability, features and performance.
Stars: ✭ 729 (-81.54%)
Mutual labels:  database, nosql, performance
Paper
Paper is a fast NoSQL-like storage for Java/Kotlin objects on Android with automatic schema migration support.
Stars: ✭ 2,263 (-42.71%)
Mutual labels:  database, nosql, mobile-database
objectbox-generator
ObjectBox Generator based on FlatBuffers schema files (fbs) for C and C++ (more languages in the future)
Stars: ✭ 30 (-99.24%)
Mutual labels:  nosql, objectbox
Tiedot
A rudimentary implementation of a basic document (NoSQL) database in Go
Stars: ✭ 2,643 (-33.09%)
Mutual labels:  database, nosql
Ravendb
ACID Document Database
Stars: ✭ 2,870 (-27.34%)
Mutual labels:  database, nosql
Iowow
The skiplist based persistent key/value storage engine
Stars: ✭ 206 (-94.78%)
Mutual labels:  database, nosql
Mongo
The MongoDB Database
Stars: ✭ 20,883 (+428.68%)
Mutual labels:  database, nosql
Bedquilt Core
A JSON document store on PostgreSQL
Stars: ✭ 256 (-93.52%)
Mutual labels:  database, nosql
Inquiry Deprecated
[DEPRECATED]: Prefer Room by Google, or SQLDelight by Square.
Stars: ✭ 264 (-93.32%)
Mutual labels:  database, nosql
Dbreeze
C# .NET MONO NOSQL ( key value store embedded ) ACID multi-paradigm database management system.
Stars: ✭ 383 (-90.3%)
Mutual labels:  database, nosql
Realm Cocoa
Realm is a mobile database: a replacement for Core Data & SQLite
Stars: ✭ 14,778 (+274.13%)
Mutual labels:  database, mobile-database
Db
Data access layer for PostgreSQL, CockroachDB, MySQL, SQLite and MongoDB with ORM-like features.
Stars: ✭ 2,832 (-28.3%)
Mutual labels:  database, nosql
Rxdb
🔄 A client side, offline-first, reactive database for JavaScript Applications
Stars: ✭ 16,670 (+322.03%)
Mutual labels:  database, nosql
Ftserver
Lightweight Embeddable iBoxDB Full Text Search Server for Java
Stars: ✭ 219 (-94.46%)
Mutual labels:  database, nosql
Query track
Find time-consuming database queries for ActiveRecord-based Rails Apps
Stars: ✭ 258 (-93.47%)
Mutual labels:  database, performance
Concourse
Distributed database warehouse for transactions, search and analytics across time.
Stars: ✭ 310 (-92.15%)
Mutual labels:  database, nosql
Bitnami Docker Redis
Bitnami Redis Docker Image
Stars: ✭ 317 (-91.97%)
Mutual labels:  database, nosql
Kache
A simple in memory cache written using go
Stars: ✭ 349 (-91.16%)
Mutual labels:  database, nosql
Kivik
Kivik provides a common interface to CouchDB or CouchDB-like databases for Go and GopherJS.
Stars: ✭ 200 (-94.94%)
Mutual labels:  database, nosql

Follow ObjectBox on Twitter

ObjectBox Java (Kotlin, Android)

ObjectBox is a superfast object-oriented database with strong relation support. ObjectBox is embedded into your Android, Linux, macOS, or Windows app.

Latest version: 3.0.1 (2021/10/19)

Demo code using ObjectBox:

// Kotlin
val playlist = Playlist("My Favorites")
playlist.songs.add(Song("Lalala"))
playlist.songs.add(Song("Lololo"))
box.put(playlist)
// Java
Playlist playlist = new Playlist("My Favorites");
playlist.songs.add(new Song("Lalala"));
playlist.songs.add(new Song("Lololo"));
box.put(playlist);

Other languages/bindings

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

Gradle setup

For Android projects, add the ObjectBox Gradle plugin to your root build.gradle:

buildscript {
    ext.objectboxVersion = "3.0.1"
    repositories {        
        mavenCentral()    
    }
    dependencies {
        classpath("io.objectbox:objectbox-gradle-plugin:$objectboxVersion")
    }
}

And in your app's build.gradle apply the plugin:

// Using plugins syntax:
plugins {
    id("io.objectbox") // Add after other plugins.
}

// Or using the old apply syntax:
apply plugin: "io.objectbox" // Add after other plugins.

First steps

Create a data object class @Entity, for example "Playlist".

// Kotlin
@Entity data class Playlist( ... )

// Java
@Entity public class Playlist { ... }

Now build the project to let ObjectBox generate the class MyObjectBox for you.

Prepare the BoxStore object once for your app, e.g. in onCreate in your Application class:

boxStore = MyObjectBox.builder().androidContext(this).build();

Then get a Box class for the Playlist entity class:

Box<Playlist> box = boxStore.boxFor(Playlist.class);

The Box object gives you access to all major functions, like put, get, remove, and query.

For details please check the docs.

Links

Features

Docs & Changelog, JavaDocs

Examples

License

Copyright 2017-2020 ObjectBox Ltd. All rights reserved.

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 the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].