2014-10-20 07:56:41 +08:00
|
|
|
[package]
|
|
|
|
name = "rusqlite"
|
2020-08-22 13:23:03 +08:00
|
|
|
version = "0.24.0"
|
2020-04-16 12:07:23 +08:00
|
|
|
authors = ["The rusqlite developers"]
|
2018-10-31 03:11:35 +08:00
|
|
|
edition = "2018"
|
2014-11-21 22:48:57 +08:00
|
|
|
description = "Ergonomic wrapper for SQLite"
|
2020-04-16 12:07:23 +08:00
|
|
|
repository = "https://github.com/rusqlite/rusqlite"
|
2016-08-30 02:22:58 +08:00
|
|
|
documentation = "http://docs.rs/rusqlite/"
|
2014-11-21 22:48:57 +08:00
|
|
|
readme = "README.md"
|
|
|
|
keywords = ["sqlite", "database", "ffi"]
|
|
|
|
license = "MIT"
|
2017-01-21 04:16:26 +08:00
|
|
|
categories = ["database"]
|
|
|
|
|
|
|
|
[badges]
|
2020-04-16 12:07:23 +08:00
|
|
|
travis-ci = { repository = "rusqlite/rusqlite" }
|
|
|
|
appveyor = { repository = "rusqlite/rusqlite" }
|
2020-04-16 16:07:02 +08:00
|
|
|
codecov = { repository = "rusqlite/rusqlite" }
|
2018-08-26 13:23:41 +08:00
|
|
|
maintenance = { status = "actively-developed" }
|
2014-10-20 07:56:41 +08:00
|
|
|
|
|
|
|
[lib]
|
|
|
|
name = "rusqlite"
|
2014-11-15 04:02:27 +08:00
|
|
|
|
2019-02-02 18:00:12 +08:00
|
|
|
[workspace]
|
|
|
|
members = ["libsqlite3-sys"]
|
|
|
|
|
2015-02-24 08:52:48 +08:00
|
|
|
[features]
|
2016-02-13 10:51:24 +08:00
|
|
|
load_extension = []
|
2018-09-05 00:58:17 +08:00
|
|
|
# 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"]
|
2019-06-18 01:20:53 +08:00
|
|
|
collation = []
|
2018-09-05 00:58:17 +08:00
|
|
|
# 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)
|
2017-03-04 03:57:40 +08:00
|
|
|
trace = ["libsqlite3-sys/min_sqlite_version_3_6_23"]
|
2020-01-15 00:11:36 +08:00
|
|
|
bundled = ["libsqlite3-sys/bundled", "modern_sqlite"]
|
2017-03-04 03:57:40 +08:00
|
|
|
buildtime_bindgen = ["libsqlite3-sys/buildtime_bindgen"]
|
2017-02-04 18:01:38 +08:00
|
|
|
limits = []
|
2017-04-26 02:58:22 +08:00
|
|
|
hooks = []
|
Add a feature for storing i128 as blobs.
This is behind the `i128_blob` feature.
Blobs are stored as 16 byte big-endian values, with their most significant bit
flipped. This is so that sorting, comparison, etc all work properly, even with
negative numbers. This also allows the representation to be stable across
different computers.
It's possible that the `FromSql` implementation should handle the case that the
real value is stored in an integer. I didn't do this, but would be willing to
make the change. I don't think we should store them this way though, since I
don't think users would be able to sort/compare them sanely.
Support for `u128` is not implemented, as comparison with i128 values would work
strangely. This also is consistent with `u64` not being allowed, not that I
think that would be reason enough on it's own.
The `byteorder` crate is used if this feature is flipped, as it's quite small
and implements things more or less optimally. If/when `i128::{to,from}_be_bytes`
gets stabilized (https://github.com/rust-lang/rust/issues/52963), we should
probably use that instead.
2018-10-09 03:04:07 +08:00
|
|
|
i128_blob = ["byteorder"]
|
2017-10-24 16:54:48 +08:00
|
|
|
sqlcipher = ["libsqlite3-sys/sqlcipher"]
|
2017-09-21 03:28:19 +08:00
|
|
|
unlock_notify = ["libsqlite3-sys/unlock_notify"]
|
2018-09-05 00:58:17 +08:00
|
|
|
# xSavepoint, xRelease and xRollbackTo: 3.7.7 (2011-06-23)
|
2018-07-15 00:47:52 +08:00
|
|
|
vtab = ["libsqlite3-sys/min_sqlite_version_3_7_7", "lazy_static"]
|
2018-05-01 04:09:41 +08:00
|
|
|
csvtab = ["csv", "vtab"]
|
2018-06-10 18:16:54 +08:00
|
|
|
# pointer passing interfaces: 3.20.0
|
2018-08-31 03:15:38 +08:00
|
|
|
array = ["vtab"]
|
2019-01-13 19:46:19 +08:00
|
|
|
# session extension: 3.13.0
|
2019-11-01 16:57:56 +08:00
|
|
|
session = ["libsqlite3-sys/session", "hooks"]
|
2019-06-26 02:33:49 +08:00
|
|
|
# window functions: 3.25.0
|
|
|
|
window = ["functions"]
|
2019-07-12 01:21:54 +08:00
|
|
|
# 3.9.0
|
|
|
|
series = ["vtab"]
|
2019-08-27 02:21:23 +08:00
|
|
|
# check for invalid query.
|
|
|
|
extra_check = []
|
2020-01-15 00:11:36 +08:00
|
|
|
modern_sqlite = ["libsqlite3-sys/bundled_bindings"]
|
2020-04-03 00:12:36 +08:00
|
|
|
in_gecko = ["modern_sqlite", "libsqlite3-sys/in_gecko"]
|
2020-04-07 08:52:12 +08:00
|
|
|
bundled-windows = ["libsqlite3-sys/bundled-windows"]
|
2020-04-16 17:38:40 +08:00
|
|
|
# Build bundled sqlite with -fsanitize=address
|
|
|
|
with-asan = ["libsqlite3-sys/with-asan"]
|
2020-06-01 05:02:18 +08:00
|
|
|
column_decltype = []
|
2020-07-21 02:04:55 +08:00
|
|
|
wasm32-wasi-vfs = ["libsqlite3-sys/wasm32-wasi-vfs"]
|
2015-02-24 08:52:48 +08:00
|
|
|
|
2020-04-08 00:01:23 +08:00
|
|
|
# Helper feature for enabling both `bundled` and most non-build-related optional
|
|
|
|
# features or dependencies. 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",
|
2020-06-01 05:02:18 +08:00
|
|
|
"column_decltype",
|
2020-04-08 00:01:23 +08:00
|
|
|
"csvtab",
|
|
|
|
"extra_check",
|
|
|
|
"functions",
|
|
|
|
"hooks",
|
|
|
|
"i128_blob",
|
|
|
|
"limits",
|
|
|
|
"load_extension",
|
|
|
|
"serde_json",
|
|
|
|
"series",
|
2020-07-11 23:59:29 +08:00
|
|
|
# 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",
|
2020-04-08 00:01:23 +08:00
|
|
|
"trace",
|
|
|
|
"unlock_notify",
|
|
|
|
"url",
|
|
|
|
"uuid",
|
|
|
|
"vtab",
|
|
|
|
"window",
|
|
|
|
]
|
|
|
|
|
2014-11-21 22:52:44 +08:00
|
|
|
[dependencies]
|
2020-07-11 23:59:29 +08:00
|
|
|
time = { version = "0.2", optional = true }
|
2017-10-10 03:55:55 +08:00
|
|
|
bitflags = "1.0"
|
2016-12-04 17:17:53 +08:00
|
|
|
lru-cache = "0.1"
|
2017-10-10 03:55:55 +08:00
|
|
|
chrono = { version = "0.4", optional = true }
|
2017-04-22 01:47:47 +08:00
|
|
|
serde_json = { version = "1.0", optional = true }
|
2018-05-13 18:21:58 +08:00
|
|
|
csv = { version = "1.0", optional = true }
|
2019-07-27 15:14:55 +08:00
|
|
|
url = { version = "2.0", optional = true }
|
2018-07-15 00:47:52 +08:00
|
|
|
lazy_static = { version = "1.0", optional = true }
|
Add a feature for storing i128 as blobs.
This is behind the `i128_blob` feature.
Blobs are stored as 16 byte big-endian values, with their most significant bit
flipped. This is so that sorting, comparison, etc all work properly, even with
negative numbers. This also allows the representation to be stable across
different computers.
It's possible that the `FromSql` implementation should handle the case that the
real value is stored in an integer. I didn't do this, but would be willing to
make the change. I don't think we should store them this way though, since I
don't think users would be able to sort/compare them sanely.
Support for `u128` is not implemented, as comparison with i128 values would work
strangely. This also is consistent with `u64` not being allowed, not that I
think that would be reason enough on it's own.
The `byteorder` crate is used if this feature is flipped, as it's quite small
and implements things more or less optimally. If/when `i128::{to,from}_be_bytes`
gets stabilized (https://github.com/rust-lang/rust/issues/52963), we should
probably use that instead.
2018-10-09 03:04:07 +08:00
|
|
|
byteorder = { version = "1.2", features = ["i128"], optional = true }
|
2019-03-20 03:56:13 +08:00
|
|
|
fallible-iterator = "0.2"
|
2019-02-03 21:01:42 +08:00
|
|
|
fallible-streaming-iterator = "0.1"
|
2019-02-27 11:38:41 +08:00
|
|
|
memchr = "2.2.0"
|
2019-10-19 00:57:27 +08:00
|
|
|
uuid = { version = "0.8", optional = true }
|
2020-04-14 14:47:12 +08:00
|
|
|
smallvec = "1.3"
|
2015-02-24 04:22:34 +08:00
|
|
|
|
2015-05-05 03:22:11 +08:00
|
|
|
[dev-dependencies]
|
2020-03-08 22:36:56 +08:00
|
|
|
doc-comment = "0.3"
|
2019-11-22 19:08:12 +08:00
|
|
|
tempfile = "3.1.0"
|
2018-04-07 03:37:03 +08:00
|
|
|
lazy_static = "1.0"
|
2018-05-03 00:21:35 +08:00
|
|
|
regex = "1.0"
|
2019-10-19 00:57:27 +08:00
|
|
|
uuid = { version = "0.8", features = ["v4"] }
|
2019-06-18 01:20:53 +08:00
|
|
|
unicase = "2.4.0"
|
2020-04-07 23:33:17 +08:00
|
|
|
# Use `bencher` over criterion becasue it builds much faster and we don't have
|
|
|
|
# many benchmarks
|
|
|
|
bencher = "0.1"
|
2015-05-05 03:22:11 +08:00
|
|
|
|
2015-02-24 04:22:34 +08:00
|
|
|
[dependencies.libsqlite3-sys]
|
|
|
|
path = "libsqlite3-sys"
|
2020-08-17 09:01:19 +08:00
|
|
|
version = "0.20.0"
|
2015-12-01 04:29:50 +08:00
|
|
|
|
|
|
|
[[test]]
|
|
|
|
name = "config_log"
|
|
|
|
harness = false
|
2015-12-17 12:33:56 +08:00
|
|
|
|
|
|
|
[[test]]
|
|
|
|
name = "deny_single_threaded_sqlite_config"
|
2017-06-10 02:04:28 +08:00
|
|
|
|
2018-07-14 17:01:19 +08:00
|
|
|
[[test]]
|
|
|
|
name = "vtab"
|
|
|
|
|
2020-04-07 23:33:17 +08:00
|
|
|
[[bench]]
|
|
|
|
name = "cache"
|
|
|
|
harness = false
|
|
|
|
|
2020-06-27 15:54:33 +08:00
|
|
|
[[bench]]
|
|
|
|
name = "exec"
|
|
|
|
harness = false
|
|
|
|
|
2017-06-10 02:04:28 +08:00
|
|
|
[package.metadata.docs.rs]
|
2020-07-11 23:59:29 +08:00
|
|
|
features = [ "backup", "blob", "chrono", "collation", "functions", "limits", "load_extension", "serde_json", "time", "trace", "url", "vtab", "window", "modern_sqlite", "column_decltype" ]
|
2017-06-10 02:04:28 +08:00
|
|
|
all-features = false
|
|
|
|
no-default-features = true
|
|
|
|
default-target = "x86_64-unknown-linux-gnu"
|
2020-03-08 20:07:44 +08:00
|
|
|
|
|
|
|
[package.metadata.playground]
|
2020-04-08 00:01:23 +08:00
|
|
|
features = ["bundled-full"]
|
2020-03-08 20:07:44 +08:00
|
|
|
all-features = false
|