<commit_before>[![Join the chat at https://gitter.im/yahoo/squidb](https://badges.gitter.im/yahoo/squidb.svg)](https://gitter.im/yahoo/squidb?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Build Status](https://travis-ci.org/yahoo/squidb.svg?branch=master)](https://travis-ci.org/yahoo/squidb) [![Download](https://api.bintray.com/packages/yahoo/maven/squidb/images/download.svg) ](https://bintray.com/yahoo/maven/squidb/_latestVersion)

## Introducing SquiDB
SquiDB is a cross-platform SQLite database layer for Android and iOS. It is designed to make it as easy as possible to work with SQLite databases while still enabling the power and flexibility of raw SQL. SquiDB combines typesafe objects that represent table rows with object-oriented SQL statement builders to make it easy to read and write your data without a bunch of messy SQL strings. It also includes built in tools and hooks to help you easily write database migrations as well as implement ContentProviders.

For support or to ask questions, join our chat channel on [gitter.im](https://gitter.im/yahoo/squidb).

## Getting started
To add SquiDB as a dependency in your build.gradle file:
```gradle
// This example is for a typical Android setup, j2objc/iOS setup may vary
//If using kotlin language,please add this
//apply plugin: 'kotlin-kapt'
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        // android-apt plugin; https://bitbucket.org/hvisser/android-apt
        // Only needed if using the android gradle plugin version less than 2.2.0
        // classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
}

repositories {
    jcenter()
}

// Only needed if using the android gradle plugin version less than 2.2.0
// apply plugin: 'com.neenbedankt.android-apt'

dependencies {
    compile 'com.yahoo.squidb:squidb:3.2.3'
    compile 'com.yahoo.squidb:squidb-annotations:3.2.3'
    compile 'com.yahoo.squidb:squidb-android:3.2.3' // For Android projects only
    annotationProcessor 'com.yahoo.squidb:squidb-processor:3.2.3'
    // If using the android-apt plugin, this becomes
    // apt 'com.yahoo.squidb:squidb-processor:3.2.3'
    // If using kotlin language, this becomes
    // kapt 'com.yahoo.squidb:squidb-processor:3.2.3'
}
```
See [this wiki page](https://github.com/yahoo/squidb/wiki/Adding-SquiDB-as-a-dependency) for more detailed instructions on adding SquiDB as a dependency.

#### A note on cross-platform support
As of SquiDB 3.0, cross-platform support is provided by compiling with [Google's j2objc tool](http://j2objc.org/). In other words, SquiDB can be used as a SQLite data layer to develop cross-platform business logic that will run on both Android and iOS platforms. If you don't need this feature, you can ignore it -- SquiDB will continue to work on Android exactly as it always has, with only minor, easy to update API changes.

#### Upgrading between major versions
* See [this wiki page](https://github.com/yahoo/squidb/wiki/Changes-in-SquiDB-2.0) if upgrading from version 1.x to 2.x<commit_msg>Minor README reorg<commit_after>[![Join the chat at https://gitter.im/yahoo/squidb](https://badges.gitter.im/yahoo/squidb.svg)](https://gitter.im/yahoo/squidb?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Build Status](https://travis-ci.org/yahoo/squidb.svg?branch=master)](https://travis-ci.org/yahoo/squidb) [![Download](https://api.bintray.com/packages/yahoo/maven/squidb/images/download.svg) ](https://bintray.com/yahoo/maven/squidb/_latestVersion)

## Introducing SquiDB
SquiDB is a cross-platform SQLite database layer for Android and iOS. It is designed to make it as easy as possible to work with SQLite databases while still enabling the power and flexibility of raw SQL. SquiDB combines typesafe objects that represent table rows with object-oriented SQL statement builders to make it easy to read and write your data without a bunch of messy SQL strings. It also includes built in tools and hooks to help you easily write database migrations as well as implement ContentProviders.

For support or to ask questions, join our chat channel on [gitter.im](https://gitter.im/yahoo/squidb).

## Getting started
To add SquiDB as a dependency in your build.gradle file:
```gradle
// This example is for a typical Android setup, j2objc/iOS setup may vary
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        // android-apt plugin; https://bitbucket.org/hvisser/android-apt
        // Only needed if using the android gradle plugin version less than 2.2.0
        // classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
}

repositories {
    jcenter()
}

// Only needed if using the android gradle plugin version less than 2.2.0
// apply plugin: 'com.neenbedankt.android-apt'
// If using Kotlin, you may need to use this plugin instead of the default annotationProcessor configuration
// apply plugin: 'kotlin-kapt'

dependencies {
    compile 'com.yahoo.squidb:squidb:3.2.3'
    compile 'com.yahoo.squidb:squidb-annotations:3.2.3'
    compile 'com.yahoo.squidb:squidb-android:3.2.3' // For Android projects only
    annotationProcessor 'com.yahoo.squidb:squidb-processor:3.2.3'
    // If using the android-apt plugin, this becomes
    // apt 'com.yahoo.squidb:squidb-processor:3.2.3'
    // If using kotlin language, this becomes
    // kapt 'com.yahoo.squidb:squidb-processor:3.2.3'
}
```
See [this wiki page](https://github.com/yahoo/squidb/wiki/Adding-SquiDB-as-a-dependency) for more detailed instructions on adding SquiDB as a dependency.

#### A note on cross-platform support
As of SquiDB 3.0, cross-platform support is provided by compiling with [Google's j2objc tool](http://j2objc.org/). In other words, SquiDB can be used as a SQLite data layer to develop cross-platform business logic that will run on both Android and iOS platforms. If you don't need this feature, you can ignore it -- SquiDB will continue to work on Android exactly as it always has, with only minor, easy to update API changes.

#### Upgrading between major versions
* See [this wiki page](https://github.com/yahoo/squidb/wiki/Changes-in-SquiDB-2.0) if upgrading from version 1.x to 2.x
{'fraction_non_alphanumeric': 0.10517851399163718, 'fraction_numerical': 0.011257639112254744, 'mean_word_length': 4.019370460048426, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 22, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2666771', 'n_tokens_mistral': 2073, 'n_tokens_neox': 1904, 'n_words': 641}