[package]
name = "rusqlite"
version = "0.24.2"
authors = ["The rusqlite developers"]
edition = "2018"
description = "Ergonomic wrapper for SQLite"
repository = "https://github.com/rusqlite/rusqlite"
documentation = "http://docs.rs/rusqlite/"
readme = "README.md"
keywords = ["sqlite", "database", "ffi"]
license = "MIT"
categories = ["database"]

[badges]
travis-ci = { repository = "rusqlite/rusqlite" }
appveyor = { repository = "rusqlite/rusqlite" }
codecov = { repository = "rusqlite/rusqlite" }
maintenance = { status = "actively-developed" }

[lib]
name = "rusqlite"

[workspace]
members = ["libsqlite3-sys"]

[features]
load_extension = []
# hot-backup interface: 3.6.11 (2009-02-18)
backup = ["libsqlite3-sys/min_sqlite_version_3_6_23"]
# sqlite3_blob_reopen: 3.7.4
blob = ["libsqlite3-sys/min_sqlite_version_3_7_7"]
collation = []
# sqlite3_create_function_v2: 3.7.3 (2010-10-08)
functions = ["libsqlite3-sys/min_sqlite_version_3_7_7"]
# sqlite3_log: 3.6.23 (2010-03-09)
trace = ["libsqlite3-sys/min_sqlite_version_3_6_23"]
bundled = ["libsqlite3-sys/bundled", "modern_sqlite"]
buildtime_bindgen = ["libsqlite3-sys/buildtime_bindgen"]
limits = []
hooks = []
i128_blob = ["byteorder"]
sqlcipher = ["libsqlite3-sys/sqlcipher"]
unlock_notify = ["libsqlite3-sys/unlock_notify"]
# xSavepoint, xRelease and xRollbackTo: 3.7.7 (2011-06-23)
vtab = ["libsqlite3-sys/min_sqlite_version_3_7_7", "lazy_static"]
csvtab = ["csv", "vtab"]
# pointer passing interfaces: 3.20.0
array = ["vtab"]
# session extension: 3.13.0
session = ["libsqlite3-sys/session", "hooks"]
# window functions: 3.25.0
window = ["functions"]
# 3.9.0
series = ["vtab"]
# check for invalid query.
extra_check = []
modern_sqlite = ["libsqlite3-sys/bundled_bindings"]
in_gecko = ["modern_sqlite", "libsqlite3-sys/in_gecko"]
bundled-windows = ["libsqlite3-sys/bundled-windows"]
# Build bundled sqlite with -fsanitize=address
with-asan = ["libsqlite3-sys/with-asan"]
column_decltype = []
wasm32-wasi-vfs = ["libsqlite3-sys/wasm32-wasi-vfs"]
winsqlite3 = ["libsqlite3-sys/winsqlite3"]

# Helper feature for enabling both `bundled` and most non-build-related
# optional features or dependencies (except `session`). This is useful for
# running tests / clippy / etc. New features and optional dependencies that
# don't conflict with anything else should be added here.
bundled-full = [
    "array",
    "backup",
    "blob",
    "bundled",
    "chrono",
    "collation",
    "column_decltype",
    "csvtab",
    "extra_check",
    "functions",
    "hooks",
    "i128_blob",
    "limits",
    "load_extension",
    "serde_json",
    "series",
    # time v0.2 does not work with tarpaulin v0.14.0. See time-rs/time#265.
    # Re-enable when time v0.3 is released with the fix.
    # "time",
    "trace",
    "unlock_notify",
    "url",
    "uuid",
    "vtab",
    "window",
]

[dependencies]
time = { version = "0.2.23", optional = true }
bitflags = "1.2"
hashlink = "0.6"
chrono = { version = "0.4", optional = true }
serde_json = { version = "1.0", optional = true }
csv = { version = "1.1", optional = true }
url = { version = "2.1", optional = true }
lazy_static = { version = "1.4", optional = true }
byteorder = { version = "1.3", features = ["i128"], optional = true }
fallible-iterator = "0.2"
fallible-streaming-iterator = "0.1"
memchr = "2.3"
uuid = { version = "0.8", optional = true }
smallvec = "1.0"

[dev-dependencies]
doc-comment = "0.3"
tempfile = "3.1.0"
lazy_static = "1.4"
regex = "1.3"
uuid = { version = "0.8", features = ["v4"] }
unicase = "2.6.0"
# Use `bencher` over criterion becasue it builds much faster and we don't have
# many benchmarks
bencher = "0.1"

[dependencies.libsqlite3-sys]
path = "libsqlite3-sys"
version = "0.21.0"

[[test]]
name = "config_log"
harness = false

[[test]]
name = "deny_single_threaded_sqlite_config"

[[test]]
name = "vtab"

[[bench]]
name = "cache"
harness = false

[[bench]]
name = "exec"
harness = false

[package.metadata.docs.rs]
features = [ "array", "backup", "blob", "chrono", "collation", "functions", "limits", "load_extension", "serde_json", "time", "trace", "url", "vtab", "window", "modern_sqlite", "column_decltype" ]
all-features = false
no-default-features = true
default-target = "x86_64-unknown-linux-gnu"

[package.metadata.playground]
features = ["bundled-full"]
all-features = false
