# square/sqlbrite

**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/square-sqlbrite).**

4,529 stars · 412 forks · Java · Apache-2.0 · archived

## Links

- GitHub: https://github.com/square/sqlbrite
- Homepage: https://square.github.io/sqlbrite/3.x/sqlbrite/
- awesome-repositories: https://awesome-repositories.com/repository/square-sqlbrite.md

## Description

Sqlbrite is a reactive SQLite database manager and lightweight wrapper for Android. It functions as a reactive SQL library that converts standard SQLite queries into observable streams, allowing the application to emit new results automatically when underlying database tables change.

The project provides a mechanism for tracking changes to specific database tables, triggering query refreshes without manual polling. It also includes an atomic transaction manager to group multiple SQL modifications into single units, ensuring data integrity and preventing redundant notifications.

The library handles local data persistence on Android by delegating schema operations and database lifecycle management to the standard SQLite helper. Its core capabilities cover real-time data observation and the management of database transactions.

## Tags

### Data & Databases

- [Reactive SQLite Libraries](https://awesome-repositories.com/f/data-databases/database-management-systems/database-engines/embedded-databases/sqlite-databases/reactive-sqlite-libraries.md) — Integrates SQLite into Android applications with reactive streams that automatically update the UI on data changes.
- [Cursor-Based Change Streaming](https://awesome-repositories.com/f/data-databases/data-stream-subscriptions/cursor-based-change-streaming.md) — Transforms traditional SQLite result cursors into real-time data streams that automatically update the UI.
- [SQL Table Observers](https://awesome-repositories.com/f/data-databases/key-value-pair-managers/observable-state-tables/sql-table-observers.md) — Tracks changes to specific database tables to trigger automatic query refreshes without manual polling.
- [Auto-Updating Query Results](https://awesome-repositories.com/f/data-databases/query-result-fetching/auto-updating-query-results.md) — Emits new query results automatically whenever the underlying tracked tables are inserted, updated, or deleted. ([source](https://cdn.jsdelivr.net/gh/square/sqlbrite@trunk/README.md))
- [Reactive SQL Query Execution](https://awesome-repositories.com/f/data-databases/reactive-query-engines/reactive-sql-query-execution.md) — Executes SQL queries as reactive streams that emit new data upon table updates.
- [SQLite Database Management](https://awesome-repositories.com/f/data-databases/sqlite-database-management.md) — Manages database transactions and schema operations on Android via a lightweight SQLite wrapper.
- [Atomic Transaction Execution](https://awesome-repositories.com/f/data-databases/data-integration-synchronization/data-integration/database-integrations/atomic-transaction-execution.md) — Groups SQL modifications into atomic transactions to ensure data integrity and prevent redundant event notifications.
- [Atomic Transactions](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/connection-transaction-management/atomic-transactions.md) — Groups multiple SQL modifications into single atomic units to ensure consistency and minimize notifications.
- [Database Transaction Management](https://awesome-repositories.com/f/data-databases/database-transaction-management.md) — Provides programmatic control over transaction boundaries to ensure data consistency and prevent redundant notifications. ([source](https://cdn.jsdelivr.net/gh/square/sqlbrite@trunk/README.md))

### Part of an Awesome List

- [Android Device Storage](https://awesome-repositories.com/f/awesome-lists/data/local-storage/android-device-storage.md) — Provides local data persistence on Android devices using SQLite with a reactive information flow.
- [Persistence](https://awesome-repositories.com/f/awesome-lists/data/persistence.md) — Reactive wrapper around SQLiteOpenHelper.
- [Reactive Libraries](https://awesome-repositories.com/f/awesome-lists/devtools/reactive-libraries.md) — Provides reactive wrappers for database query results.

### Mobile Development

- [Android SQLite Management](https://awesome-repositories.com/f/mobile-development/android-sqlite-management.md) — Provides a lightweight wrapper around SQLiteOpenHelper for managing local persistence and schemas on Android.

### Networking & Communication

- [Real-Time Data Synchronization](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/real-time-data-synchronization.md) — Synchronizes database state and views in real time by tracking changes in specific tables.
- [Table Change Streams](https://awesome-repositories.com/f/networking-communication/data-streaming/database-change-streaming/change-stream-semantics/table-change-streams.md) — Links SQL queries to the tables they reference to automate the refreshing of active data streams.

### Software Engineering & Architecture

- [Reactive Stream Bindings](https://awesome-repositories.com/f/software-engineering-architecture/functional-reactive-stream-integrations/reactive-stream-bindings.md) — Wraps standard SQLite cursors in observable streams to emit updated result sets to subscribers.
- [Transaction Batching](https://awesome-repositories.com/f/software-engineering-architecture/transaction-batching.md) — Implements a mechanism to group multiple database operations into a single atomic transaction to prevent redundant notification cycles.

### System Administration & Monitoring

- [Table Change Observers](https://awesome-repositories.com/f/system-administration-monitoring/database-query-monitors/table-change-observers.md) — Monitors specific database tables to trigger automatic query re-execution when underlying data changes.
