Store data on restricted devices. Without eating up resources.
ObjectBox is a highly efficient embedded database, optimized for high performance and low resource use on restricted (embedded) devices. ObjectBox is a NoSQL, ACID-compliant embedded database, with a small footprint, using very little CPU, RAM, and battery – leaving more resources for other value adding operations. On top, we offer an out-of-the-box data synchronization solution, enabling developers to easily keep data in flow (bi-directional) between embedded devices, online or offline. ObjectBox enables developers to persist objects and time-series data with native language APIs like C, C++, Go-lang, Java, Flutter / Dart, Kotlin, swift. You can run it on any POSIX platform including Linux, Android, iOS, MacOS, and Windows. We also do offer support for data structured in trees, e.g. VSS and Umati.
Resource Efficiency
Small footprint and minimal CPU, RAM and battery use. In reference cases on restricted embedded devices, we used less than 8% CPU for 150k data points with 30k random changes / second, reducing energy usage by 90%.
Embedded Devices
Optimized for high-performance on Embedded Systems. From Engine Control Units to Industrial Controllers: Persist and synchronize data on and between embedded devices efficiently.
Fast I/O throughput
ObjectBox is 10x faster then alternatives (check out our open source benchmarks). Ingest high volumes of data (high frequency, low frequency, simultanous connections) fast.
Enhanced Developer Agility
Over 1,000,000 developers use ObjectBox Database and love our easy-to-use native language APIs. Reduce lines of code. Make maintenance simple.
Persistent Local Storage
No connectivity? No problem. With persistent local storage, keep collecting and storing data even in environments with intermittent connectivity or extended outages.
Out-of-the-box Data Sync
Keep data in flow with ObjectBox Sync. ObjectBox syncs data bi-directionally between devices (from smartphone to server) super efficiently and transactionally safe.
Maximum Flexibility
Persist and sync objects and time-series data on any POSIX-system, e.g. Linux, Windows, iOS, Android; both, ARM 32- and 64-bit. Native language APIs are available for C, C++, Go, Java, Dart, Kotlin, and Swift.
Faster Time to Market
ObjectBox is easy and fast to set up and integrate. Our simple APIs and data browser allow developers to implement and extend solutions quickly, and make debugging and maintenance easy.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // person.fbs table Person { id: ulong; first_name: string; last_name: string; } ... OBX_txn* txn = obx_txn_begin(ob); OBX_cursor* cursor = obx_cursor_create(txn, person_entity_id); obx_id id = person_put(cursor, 0, "Joe", "Green"); // Create Person_table_t person = person_get(cursor, id); // Read person_put(cursor, Person_id(person), Person_last_name(person), "Black"); // Update obx_cursor_remove(cursor, id); // Delete |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // person.fbs table Person { id: ulong; first_name: string; last_name: string; } ... obx::Store store(create_obx_model()); obx::Box<Person> box(store); obx_id id = box.put({.first_name = "Joe", .last_name = "Green"}); // Create auto person = box.get(id); // Read person->last_name = "Black"; box.put(*person); // Update box.delete(id); // Delete |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | @Entity public class Person { @Id long id; String firstName; ... } // MyObjectBox is generated by ObjectBox BoxStore boxStore = MyObjectBox.builder() .androidContext(YourApp.this).build(); Box<Person> box = boxStore.boxFor(Person.class); Person person = new Person("Joe", "Green"); long id = box.put(person); // Create Person person = box.get(id); // Read person.setLastName("Black"); box.put(person); // Update box.remove(person); // Delete |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | //go:generate objectbox-bindings type Person struct { Id uint64 `id` FirstName string LastName string } ...box := BoxForPerson(ob) // Create id, _ := box.Put(&Person{ FirstName: "Joe", LastName: "Green", }) person, _ := box.Get(id) // Read person.LastName = "Black" box.Put(person) // Update box.Remove(person) // Delete |
Developers 🤍 ObjectBox
The ease of use was a big pro; having dealt with a lot of databases, the APIs of ObjectBox are refreshingly intuitive.
The Embedded Database for Sustainable Edge Applications
ObjectBox’ embedded database and data sync solution empowers embedded solutions across industries. From Automotive to Industrial IoT, ObjectBox is used by embedded developers for speed, resource efficiency, and to reduce data transmission overhead. Read more about industry-specific applications here: