All Projects → greenbits → Brick

greenbits / Brick

An intuitive way to work with persistent data in Dart

Programming Languages

dart
5743 projects

Projects that are alternatives of or similar to Brick

sync-client
SyncProxy javascript client with support for all major embedded databases (IndexedDB, SQLite, WebSQL, LokiJS...)
Stars: ✭ 30 (-81.13%)
Mutual labels:  offline, sqlite
Canvas-Vision
📷 Wallpaper Downloading Android App
Stars: ✭ 14 (-91.19%)
Mutual labels:  offline, sqlite
Appkernel
API development made easy: a smart Python 3 API framework
Stars: ✭ 152 (-4.4%)
Mutual labels:  rest
Restinstance
Robot Framework library for RESTful JSON APIs
Stars: ✭ 157 (-1.26%)
Mutual labels:  rest
React Native Offline
Handy toolbelt to deal nicely with offline/online connectivity in a React Native app. Smooth redux integration ✈️
Stars: ✭ 2,000 (+1157.86%)
Mutual labels:  offline
Tortoise Orm
Familiar asyncio ORM for python, built with relations in mind
Stars: ✭ 2,558 (+1508.81%)
Mutual labels:  sqlite
Cachew
Transparent and persistent cache/serialization powered by type hints
Stars: ✭ 155 (-2.52%)
Mutual labels:  sqlite
Crossbar
Crossbar.io - WAMP application router
Stars: ✭ 1,957 (+1130.82%)
Mutual labels:  rest
Restcountries
Get information about countries via a RESTful API
Stars: ✭ 2,054 (+1191.82%)
Mutual labels:  rest
Modernarchitectureshop
The Microservices Online Shop is an application with a modern software architecture that is cleanly designed and based on.NET lightweight technologies. The shop has two build variations. The first variant is the classic Microservices Architectural Style. The second one is with Dapr. Dapr has a comprehensive infrastructure for building highly decoupled Microservices; for this reason, I am using Dapr to achieve the noble goal of building a highly scalable application with clean architecture and clean code.
Stars: ✭ 154 (-3.14%)
Mutual labels:  sqlite
Axion Technologies Hnh
Hotter’n Hell Hundred is the largest one hundred mile cycling events in the United States and the world. Held in Wichita Falls, TX, this event brings thousands of registrants within the city limits, resulting in a spike in revenue throughout local businesses, restaurants, and hotels, and overall for the city of Wichita Falls. There are several sub-events within the Hotter’n Hell Hundred, such as different races, dining events, consumer shows and a medical symposium. The proposed Hotter’n Hell Hundred mobile application serves as the ultimate source of information for the events, enabling users to quickly register for events and explore local places. In addition, the mobile application allows users to navigate through race during the event, tracking their speed, nearby rest stops, alternate routes, and finish line, ensuring the best possible experience during their stay in Wichita Falls.
Stars: ✭ 155 (-2.52%)
Mutual labels:  mobile-development
Hikaku
A library that tests if the implementation of a REST-API meets its specification.
Stars: ✭ 154 (-3.14%)
Mutual labels:  rest
Titiler
A dynamic Web Map tile server
Stars: ✭ 153 (-3.77%)
Mutual labels:  rest
Atdatabases
TypeScript clients for databases that prevent SQL Injection
Stars: ✭ 154 (-3.14%)
Mutual labels:  sqlite
Angular2 Crud Rest
Sample Angular (2.x and 4.x) app: CRUD example + routing
Stars: ✭ 152 (-4.4%)
Mutual labels:  rest
Persist Queue
A thread-safe disk based persistent queue in Python
Stars: ✭ 157 (-1.26%)
Mutual labels:  sqlite
Serendipity
A PHP blog software
Stars: ✭ 151 (-5.03%)
Mutual labels:  sqlite
Cmissync
Synchronize content between a CMIS repository and your desktop. Like Dropbox for Enterprise Content Management!
Stars: ✭ 153 (-3.77%)
Mutual labels:  offline
Middleware Acl
middleware-acl Access Control Library RBAC casbin
Stars: ✭ 155 (-2.52%)
Mutual labels:  rest
Kotlin Openapi Spring Functional Template
🍃 Kotlin Spring 5 Webflux functional application with api request validation and interactive api doc
Stars: ✭ 159 (+0%)
Mutual labels:  rest

Build Status

An intuitive way to work with persistent data

An intuitive way to work with persistent data in Dart.

Full documentation

Why Brick?

What is Brick?

Brick is an extensible query interface for Dart applications. It's an all-in-one solution responsible for representing business data in the application, regardless of where your data comes from. Using Brick, developers can focus on implementing the application, without concern for where the data lives. Brick was inspired by the need for applications to work offline first, even if an API represents your source of truth.

Quick Start

  1. Add the packages:
    dependencies:
      brick_offline_first: any
    dev_dependencies:
      brick_offline_first_with_rest_build:
        git:
          url: https://github.com/greenbits/brick.git
          path: packages/brick_offline_first_with_rest_build
      build_runner: any
    
  2. Configure your app directory structure to match Brick's expectations:
    mkdir -p lib/app/adapters lib/app/db lib/app/models;
    
  3. Add models that contain your app logic. Models must be saved in lib/app/models/<class_as_snake_name>.dart.
  4. Run flutter pub run build_runner run to generate your models (or pub run build_runner run if you're not using Flutter) and sometimes migrations. Rerun after every new model change or flutter pub run build_runner watch for automatic generations.
  5. Extend an existing repository or create your own:
    // lib/app/repository.dart
    import 'package:brick_offline_first/offline_first_with_rest.dart';
    import 'package:audio_journal/app/brick.g.dart';
    export 'package:brick_offline_first/offline_first_with_rest.dart' show And, Or, Query, QueryAction, Where, WherePhrase;
    
    class Repository extends OfflineFirstWithRestRepository {
      Repository()
          : super(
              migrations: migrations,
              restProvider: RestProvider(
                'http://localhost:3000',
                modelDictionary: restModelDictionary,
              ),
              sqliteProvider: SqliteProvider(
                _DB_NAME,
                modelDictionary: sqliteModelDictionary,
              ),
            );
    }
    
  6. Profit.
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].