-
Notifications
You must be signed in to change notification settings - Fork 17
/
Cargo.toml
100 lines (88 loc) · 3.52 KB
/
Cargo.toml
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
[package]
name = "verneuil"
version = "0.6.4"
description = "A sqlite VFS for asynchronous replication to S3-compatible blob stores"
license = "MIT"
repository = "https://github.com/backtrace-labs/verneuil"
authors = ["Backtrace I/O <team@backtrace.io>"]
edition = "2018"
[lib]
crate-type = ["lib", "staticlib"]
[[example]]
name = "verneuil_vfs"
crate-type = ["cdylib"]
required-features = ["dynamic_vfs"]
[[example]]
name = "verneuilctl"
crate-type = ["bin"]
required-features = ["vendor_sqlite"]
[[example]]
name = "rusqlite_integration"
crate-type = ["bin"]
[features]
vendor_sqlite = []
dynamic_vfs = [] # Build the runtime-loadable VFS shared object; conflicts with vendor_sqlite.
# Consider the source db's ctime in the version id.
#
# This is more conservative (less likely to leave changes undetected),
# but also more prone to false positives: we have observed no-op
# writes to db files after empty "IMMEDIATE" transactions, mostly
# after writes to scratch pages that are never committed into active
# duty. These false positive trigger a recovery path in Verneuil,
# where the whole db is re-uploaded.
#
# It probably only makes sense to enable this feature when debugging
# replication failures (not lag, but outright incorrect snapshots),
# especially when writing to the same replicated db with both the
# verneuil VFS and the regular Unix VFS on fault-prone storage.
mix_ctime_in_version_id = []
no_xattr = [] # Remove the xattr code to simulate feature-poor filesystems.
test_random_chunk_action = [] # Randomly decide what to do with base chunks
test_vfs = ["blake2b_simd", "tracing-subscriber"] # Build an archive for sqlite3 tests.
test_validate_writes = ["test_vfs"] # Validate snapshots after writes
test_validate_reads = ["test_vfs"] # Validate snapshots after reads as well (extra slow)
test_validate_all = ["test_validate_writes", "test_validate_reads"]
[dependencies]
attohttpc = { version = "0.18", default-features = false }
aws-region = { version = "0.23" } # we just want the same as rust-s3
backtrace = "0.3"
# We use blake2b to compare the actual db file and our replicated snapshot,
# but only during tests.
blake2b_simd = { version = "1", optional = true }
chrono = { version = "0.4", features = ["serde"] }
# Having dev dependencies as optional makes it possible to
# build verneuil's examples out of tree.
clap = { version = "3", optional = true }
crossbeam-channel = "0.5"
derivative = "2.2.0"
governor = { version = "0.4", default-features = false, features = ["std", "jitter"] } # 0.4 doesn't build without "jitter"
itertools = "0.10"
kismet-cache = "0.2"
lazy_static = "1"
libc = "0.2"
lru = { version = "0.7", default-features = false } # Disable hashbrown
memmap2 = "0.5"
percent-encoding = "2"
prost = "0.9"
quinine = "0.2"
rand = "0.8"
rayon = "1.5"
regex = "1"
rust-s3 = { version = "0.28", default-features = false, features = ["tokio-rustls-tls", "blocking"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
tempfile = "3"
tokio = { version = "1", features = ["rt", "time"], default-features = false }
tracing = "0.1"
tracing-subscriber = { version = "0.3", optional = true, features = ["tracing-log"] } # Also collect log! calls.
uluru = "3"
umash = "0.4"
uuid = { version = "0.8", features = ["v4"] }
zstd = "0.11"
[dev-dependencies]
rusqlite = { version = "0.26" } # For the sample rusqlite_integration.
tracing-subscriber = { version = "0.3", features = ["env-filter", "tracing-log"] } # Examples set up tracing.
clap = { version = "3", features = ["derive"] }
test_dir = "0.2"
[build-dependencies]
cc = "1"