aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ext_depends_cgi/d2sqlite3/README.md
blob: b1b3958f6bacdd0bcb9da580c714aad688cfac87 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# `D2Sqlite3`

[![Dub](https://img.shields.io/dub/v/d2sqlite3.svg)](http://code.dlang.org/packages/d2sqlite3)
[![Downloads](https://img.shields.io/dub/dt/d2sqlite3.svg)](https://code.dlang.org/packages/d2sqlite3)

This is a small wrapper around SQLite for the D programming language.
It wraps the C API in an idiomatic manner and handles built-in D types and
`Nullable!T` automatically.

## Documentation

[Online documentation](http://dlang-community.github.io/d2sqlite3/d2sqlite3.html)

## `dub` configurations

- **`with-lib`** (the default): assumes that SQLite is already installed and available to the linker. Set the right path for the SQLite library in your project's `dub.json` file using the `lflags` setting:

```json
    "lflags": ["-L/path/to/lib"]
```

- **`without-lib`**: you manage linking SQLite yourself.

- **`all-included`**: on Windows, use a prebuilt SQLite DLL (bundled with this library); on Posix systems, builds SQLite from the source amalgamation (bundled with this library), using the default building configuration with these options defined:
  - SQLITE_ENABLE_COLUMN_METADATA
  - SQLITE_ENABLE_UNLOCK_NOTIFY

Set the right configuration for you project in its `dub.json` file using the `subConfigurations` setting, e.g.:

```json
    "subConfigurations": {
        "d2sqlite3": "all-included"
    }
```

## Library versions

These versions can be used to build the library:

- `SqliteEnableColumnMetadata`: to enable corresponding special methods of `Row`.
- `SqliteEnableUnlockNotify`: to enable SQLite's builtin unlock notification mechanism.
- `SqliteFakeUnlockNotify`: to emulate an unlock notification mechanism.

## C binding generation

The D binding file `sqlite3.d` is generated from the C header file `sqlite3.h`, using [jacob-carlborg/dstep](https://github.com/jacob-carlborg/dstep). I try to keep it up to date.