All major languages and platforms supported
We 🤍 AI & Mobile Apps
Make your AI Apps always available, reliable companions
✔ On-device data persistence & AI
✔ Offline-first. No internet needed to run
✔ Scalable. Grows effortlessly with your needs
✔ Resourceful. Low battery, CPU, memory & bandwidth needs
✔ Private. Own your data, own your AI
Explore more >
We 🤍 PoS Terminals
Uninterrupted PoS experiences
✔ No internet needed to keep selling
✔ Offline-first, cloud-optional
✔ The kind of fast your customers feel
✔ 100% transactionally safe
Explore more >
We 🤍 Automotive
Empowering Software-Defined Vehicles
✔ Highspeed on ECUs
✔ Resource-efficiency
✔ VSS-support
✔ Agile APIs to swiftly add features
Explore more >
TRUSTED BY DEVELOPERS FROM LEADING INDUSTRIES
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | @Entity public class Person { @Id long id; String firstName; String lastName; } 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 |
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 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 |
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 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class Person: Entity { var id: Id<person> = 0 var firstName: String var lastName: String ... } let store = Store(directoryPath: aPermanentPath) let box = store.box(for: Person.self) let newPerson = Person(firstName: "Joe", lastName: "Green") let id = try! box.put(newPerson) // Create let person = box.get(id) // Read person.lastName = "Black" try! box.put(person) // Update try! box.remove(person) // Delete let query = box.query { return Person.firstName == "Joe" && Person.lastName.startsWith("B") } let persons: [Person] = query.find() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | @Entity() class Person { @Id() int id = 0; String? firstName; String? lastName; } final store = await openStore(directory: 'person-db'); final box = store.box<Person>(); var person = Person() ..firstName = "Joe" ..lastName = "Green"; final id = box.put(person); // Create person = box.get(id); // Read person.lastName = "Black"; box.put(person); // Update box.remove(person.id); // Delete |
A few lines of code speak louder than a thousand words
Offline-first: persist locally, sync globally
Our APIs are simple, easy to use, and quick to implement. See for yourself.
Integrate ObjectBox and experience the simplicity of instant Data Sync. With just a few lines of code, you can start syncing data across devices – on-premise, or with the cloud, seamlessly. Our solution is fast to implement and optimized for resource-efficiency on any device, ensuring you can launch and expand your applications with minimal fuss.
Never out of Sync
Access your data when and where needed, with or without internet connectivity. Our out-of-the-box high-speed Data Sync keeps data seamlessly up-to-date across any devices and the cloud.
Save Time.
Save Energy.
Save CO2.
Save Money.
built projects
developed with ObjectBox
Running live in
millions of cars
since 2023
GitHub stars
on our repos
Tech Highlights
Fast & Lightweight
Because no one likes waiting, ObjectBox is 10X faster than any alternative and comes with an incredebly lightweight footprint.
Vector Search
Very first on-device offline vector search powering on-device AI; cloud optional. Powerful in combination with our Data Sync.
Sustainable
Due to its efficiency, ObjectBox reduces resource-use (CPU, memory, energy…) and therefore CO2, time, and money waste
Offline first
For the low-latency “always-on” experience. Develop applications that work on- and offline, unburdened by the need for a constant Internet connection.
Data Control
Self-host, deploy locally, and run on-premise – ensure data sovereignty, compliance, and seamless performance even in low-connectivity environments.
Data Sync
Never miss a beat. Our bi-directional, offline-first Data Sync keeps data flowing seamlessly across devices on the edge and from edge to cloud – 100% cloud optional.
We 🤍 Open Source | From the team behind the open source libraries: EventBus, greenDAO and Essentials. Apps that are using our technology:
Make the most of your data
offline, on-device, anywhere, anytime
Join the community
SIEMENS
“very easy to integrate…gave us the data access speed we needed.”
KONTRON S&T group
“performance improvement far beyond other databases”
Atul Kumar
“ObjectBox made my work easy to store locally. Overall my experience with ObjectBox is mind blowing.”
Manas Thakur
“I liked the fact that it is a synchronous DB and that I don’t have to await for read/write operations.”
Cris @Crispert
Eslam Mongy
“Thank you. ObjectBox has proven to be an exceptionally efficient solution for local data storage. In my experience, it surpasses the performance of other available options.”
Mohammad Monfared
“I was impressed by the simplicity and efficiency of the ObjectBox database solution.”
Thierry Benda
“ObjectBox is a great candidate to store events and handle them later, amongst many other interesting features.”
ObjectBox
ObjectBox is an on-device Database with Vector Search and out-of-the-box Data Sync, designed for resource-efficiency on mobile, IoT, and other embedded devices, like e.g. ECUs, robots, machines. It also excells on servers and cloud systems. The lightweight database uses minimal computing resources like e.g. CPU, memory, energy (battery) and is therefore superfast, sustainable, and cost-effective across environments and workloads. At the same time, it is transactionally-safe (ACID complaint) and reliably persists and synchronizes data under all kinds of challenging conditions, e.g. flaky networks, offline scenarios, on-premise, occassionally connected devices, etc. Easy to integrate and use, ObjectBox is developed by developers for developers, taking on the hard and unfavorable parts, so that developers can focus on the value-add features while we do the heavy lifting in the background.