Contents

sbooth/csqlite

[SQLite](https://sqlite.org/index.html) packaged for the [Swift Package Manager](https://swift.org/package-manager/).

Customization

For Swift 6.1 and later the build configuration and features may be customized using package traits.

Recommended Compile-Time Options

The following traits are used to specify the build configuration and the defaults reflect the SQLite recommended compile-time options:

| Package Trait | Default | SQLite Compile-Time Option | | --- | :---: | --- | | DQS_0 | Y | SQLITE_DQS=0 | | DQS_1 | | SQLITE_DQS=1 | | DQS_2 | | SQLITE_DQS=2 | | DQS_3 | | SQLITE_DQS=3 | | THREADSAFE_0 | Y | SQLITE_THREADSAFE=0 | | THREADSAFE_1 | | SQLITE_THREADSAFE=1 | | THREADSAFE_2 | | SQLITE_THREADSAFE=2 | | DEFAULT_MEMSTATUS_0 | Y | SQLITE_DEFAULT_MEMSTATUS=0 | | DEFAULT_WAL_SYNCHRONOUS_1 | Y | SQLITE_DEFAULT_WAL_SYNCHRONOUS=1 | | LIKE_DOESNT_MATCH_BLOBS | Y | SQLITE_LIKE_DOESNT_MATCH_BLOBS | | MAX_EXPR_DEPTH_0 | Y | SQLITE_MAX_EXPR_DEPTH=0 | | OMIT_DECLTYPE | Y | SQLITE_OMIT_DECLTYPE | | OMIT_DEPRECATED | Y | SQLITE_OMIT_DEPRECATED | | OMIT_PROGRESS_CALLBACK | Y | SQLITE_OMIT_PROGRESS_CALLBACK | | OMIT_SHARED_CACHE | Y | SQLITE_OMIT_SHARED_CACHE | | USE_ALLOCA | Y | SQLITE_USE_ALLOCA | | OMIT_AUTOINIT | Y | SQLITE_OMIT_AUTOINIT | | STRICT_SUBTYPE_1 | Y | SQLITE_STRICT_SUBTYPE=1 |

Double-Quoted Strings

[!IMPORTANT] The DQS_ traits are mutually exclusive and only one should be specified.

The SQLite default is SQLITE_DQS=3 but the SQLite recommended value is SQLITE_DQS=0.

Threading Mode

[!IMPORTANT] The THREADSAFE_ traits are mutually exclusive and only one should be specified.

The SQLite default is SQLITE_THREADSAFE=1 but the SQLite recommended value is SQLITE_THREADSAFE=0.

Features

The following traits enable commonly-used SQLite features:

| Package Trait | Default | SQLite Feature | | --- | :---: | --- | | ENABLE_BYTECODE_VTAB | | SQLITE_ENABLE_BYTECODE_VTAB | | ENABLE_CARRAY | Y | SQLITE_ENABLE_CARRAY | | ENABLE_COLUMN_METADATA | | SQLITE_ENABLE_COLUMN_METADATA | | ENABLE_DBPAGE_VTAB | | SQLITE_ENABLE_DBPAGE_VTAB | | ENABLE_DBSTAT_VTAB | | SQLITE_ENABLE_DBSTAT_VTAB | | ENABLE_FTS4 | | SQLITE_ENABLE_FTS4 | | ENABLE_FTS5 | Y | SQLITE_ENABLE_FTS5 | | ENABLE_GEOPOLY | | SQLITE_ENABLE_GEOPOLY | | ENABLE_MATH_FUNCTIONS | Y | SQLITE_ENABLE_MATH_FUNCTIONS | | ENABLE_NORMALIZE | | SQLITE_ENABLE_NORMALIZE | | ENABLE_PERCENTILE | Y | SQLITE_ENABLE_PERCENTILE | | ENABLE_PREUPDATE_HOOK | | SQLITE_ENABLE_PREUPDATE_HOOK | | ENABLE_RTREE | Y | SQLITE_ENABLE_RTREE | | ENABLE_SESSION | | SQLITE_ENABLE_SESSION | | ENABLE_SNAPSHOT | Y | SQLITE_ENABLE_SNAPSHOT | | ENABLE_STMTVTAB | Y | SQLITE_ENABLE_STMTVTAB | | ENABLE_STAT4 | Y | SQLITE_ENABLE_STAT4 |

[!NOTE] The ENABLE_SESSION trait also sets the ENABLE_PREUPDATE_HOOK trait.

License

SQLite is in the public domain.

Package Metadata

Repository: sbooth/csqlite

Default branch: main

README: README.md