패키지, 저장소 및 앱 카테고리 검색

패키지 상세v5.3.2

objectbox

초고속 NoSQL ACID 호환 객체 지속성을 위한 Flutter 데이터베이스.

AndroidiOSmacOSWindowsLinux
30일 다운로드
17.6만
좋아요
1.6천
Pub 점수
160

패키지 설치

flutter pub add objectbox

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

ObjectBox는 Flutter용 고성능 NoSQL 데이터베이스로 초고속이고 ACID 준수 객체 지속성을 가능하게 합니다. 봐일러플레이트 코드나 복잡한 매핑 없이 Dart 객체를 직접 저장할 수 있습니다. 속도와 간편함을 위해 설계된 ObjectBox는 Android, iOS, macOS, Windows, Linux에서 실시간 데이터 동기화를 지원합니다. 직관적인 API를 통해 개발자는 네이티브 객체처럼 데이터를 다룰 수 있어, 최소한의 오버헤드로 빠른 로컬 스토리지를 필요로 하는 앱에 이상적입니다. ObjectBox는 인덱싱, 쿼리 및 트랜잭션을 효율적으로 처리하여 신뢰성 있고 반응성이 뛰어난 성능을 보장합니다.

사용 사례

  • 오프라인 우선 모바일 애플리케이션
  • 실시간 데이터 동기화
  • 고주파 데이터 업데이트
  • API 응답의 로컬 캐싱
  • 크로스 플랫폼 데이터 지속성

주요 기능

  • ACID 준수 거래
  • 보일러플레이트 없는 객체 매핑
  • 빠른 쿼리 성능
  • 실시간 데이터 동기화
  • 다중 플랫폼 지원

적합한 대상

  • 고속 로컬 저장소를 찾는 개발자
  • 오프라인 기능이 필요한 앱
  • 개발 속도를 우선시하는 프로젝트
  • 크로스 플랫폼 애플리케이션
  • 데이터 집약형 모바일 앱

고려 사항

  • 복잡한 SQL 쿼리에 대한 제한된 지원
  • 고급 기능을 위한 학습 곡선
  • SQLite에 비해 더 작은 커뮤니티
  • 대규모 서버 측 데이터베이스에는 적합하지 않습니다
  • 마이그레이션 처리는 수동 계획이 필요합니다

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

ObjectBox

Getting Started • Documentation • Example Apps • Issues • Blog

Build and test pub.dev package

Flutter database with vector support - easy to use & fast Dart object persistence, plus on-device vector search 💙

Very first on-device vector database for Flutter / Dart AI apps. Intuitive APIs, simply fast. Persist local Dart objects with ease & speed, efficiently manage vectors.

ObjectBox provides a store with boxes to put objects into:

// Annotate a Dart class to create a Box
@Entity()
class Person {
  @Id()
  int id;
  String firstName;
  String lastName;

  Person({this.id = 0, required this.firstName, required this.lastName});
}

final Store 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

final query = box           // Query
    .query(Person_.firstName.equals('Joe') & Person_.lastName.startsWith('B'))
    .build();
final List<Person> people = query.find();
query.close();

Ready? Continue with the ➡️ Getting Started guide.

Why use ObjectBox

ObjectBox Flutter database is an excellent choice for storing Dart objects in cross-platform applications and the only on-device database that offers you vector support for your on-device AI apps. Designed for high performance, the ObjectBox Flutter database is excellent for mobile and IoT devices. ObjectBox consumes minimal CPU, memory, and battery, ensuring that your software is not only efficient but also sustainable. By storing data locally on the device, ObjectBox allows you to cut cloud costs and create an app that does not require a connection. Get started with our intuitive native Dart API in minutes, without the hassle of SQL. Plus: We built a data synchronization solution that allows you to keep data in sync across devices and servers, both online and offline.

Features

🏁 Very first on-device vector database - for AI apps that work any place.

🏁 High performance - superfast response rates enabling real-time applications.
🪂 ACID compliant - Atomic, Consistent, Isolated, Durable.
💻 Multiplatform - Android, iOS, macOS, Linux, Windows, any POSIX-system.
🌱 Scalable - grows with your app, handling millions of objects with ease.
💚 Sustainable - frugal on CPU, Memory and battery / power use, reducing CO2 emissions.

🔗 Relations - object links / relationships are built-in.
💐 Queries - filter data as needed, even across relations.
🦮 Statically typed - compile time checks & optimizations.
📃 Schema migration - change your model with confidence.

Oh, and there is one more thing...

😮 Data Sync - keeps data in sync offline or online, between devices and servers.

Getting Started

Continue with our ➡️ Getting Started guide. It has resources and video tutorials on how to use ObjectBox in your Flutter or Dart app.

How does ObjectBox compare to other solutions?

  • ObjectBox is fast. Have a look at our benchmarks below, or test it for yourself
  • It's a full NoSQL SQLite alternative with intuitive Dart APIs you'll love 💙
  • It comes with an out-of-the-box Data Sync, making it an effective self-hosted Firebase alternative
Flutter Database Performance Benchmarks

We tested across the four main database operations, CRUD (create, read, update, delete). Each test was run multiple times and executed manually. Data preparation and evaluation were done outside the measured time.

Here are the benchmarks for ObjectBox vs sqflite vs Hive (last updated 2021-09-11) 👇

You can run these yourself using our objectbox-dart-performance Flutter benchmark app.

How do you 💙 ObjectBox?

We're looking forward to receiving your comments and requests:

Thank you! 🙏

For general news on ObjectBox, check our blog!

Contributing

Do you want to check out the ObjectBox code itself? E.g. see it in action, run tests, or even contribute code? Great! Clone/check out this repository and run this to generate code and get you started quickly:

./tool/init.sh

Also, make sure to have a look at the contribution guidelines - we are looking forward to your contribution.

Packages

This repository holds all ObjectBox Dart/Flutter packages as separate directories:

There's also a separate repository benchmarking objectbox (and other databases) in Flutter: objectbox-dart-performance.

See CONTRIBUTING.md for a more detailed overview.

Other languages/bindings

ObjectBox supports multiple platforms and languages:

  • Java SDK: runs on Android and JVM (desktop, servers)
  • Swift SDK: build fast mobile apps for iOS and macOS
  • Go SDK: great for data-driven tools and embedded server applications
  • C / C++ SDK: native speed with zero copy access to FlatBuffer objects

License

Copyright © 2019-2026 ObjectBox Ltd. <https://objectbox.io/>

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.

카테고리

의존성

의존성 목록 5 개

소스 저장소

이 패키지를 사용하는 프로젝트

순위