-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathCargo.toml
More file actions
123 lines (106 loc) · 3.56 KB
/
Cargo.toml
File metadata and controls
123 lines (106 loc) · 3.56 KB
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
[package]
name = "absurder-sql"
version = "0.1.25"
authors = ["Nicholas G. Piesco"]
description = "AbsurderSQL - SQLite + IndexedDB that's absurdly better than absurd-sql"
license = "AGPL-3.0"
repository = "https://github.com/npiesco/absurder-sql"
edition = "2024"
rust-version = "1.85.0"
exclude = ["pwa/", "pwa/.next/", "pwa/node_modules/"]
[package.metadata.wasm-pack.profile.release]
wasm-opt = ["-Oz"] # Optimize for size
[lib]
crate-type = ["cdylib", "rlib"]
[dependencies]
# Core WebAssembly bindings
wasm-bindgen = "0.2"
wasm-bindgen-futures = "0.4"
js-sys = "0.3"
web-sys = { version = "0.3", features = [
"console",
"Window",
"Document",
"Storage",
"IdbFactory",
"IdbDatabase",
"IdbObjectStore",
"IdbTransaction",
"IdbRequest",
"IdbCursorWithValue",
"IdbKeyRange",
"DomException",
"Event",
"EventTarget",
"BroadcastChannel",
"MessageEvent",
"Request",
"RequestInit",
"RequestMode",
"Response",
"Headers",
"Navigator",
"LockManager",
"LockOptions",
"AbortSignal",
] }
# TypeScript integration
tsify = "0.4"
serde = { version = "1.0", features = ["derive"] }
serde-wasm-bindgen = "0.6"
serde_json = "1.0"
crc32fast = "1.4"
# IndexedDB async API
indexed_db_futures = "0.5"
futures = { version = "0.3", features = ["std"] }
# SQL parsing
sqlparser = "0.53"
# SQLite WASM - use sqlite-wasm-rs for proper WASM support
sqlite-wasm-rs = { version = "0.4", default-features = false, features = ["precompiled"] }
# Error handling and logging
thiserror = "1.0"
log = "0.4"
console_error_panic_hook = { version = "0.1", optional = true }
wee_alloc = { version = "0.4", optional = true }
console_log = { version = "0.2", optional = true }
# Synchronization primitives
parking_lot = { version = "0.12", features = ["send_guard"] }
# Date handling
time = { version = "0.3", features = ["formatting", "parsing"] }
# Observability - OpenTelemetry and Prometheus
# All telemetry dependencies are OPTIONAL
prometheus = { version = "0.13", optional = true }
opentelemetry = { version = "0.21", optional = true }
opentelemetry_sdk = { version = "0.21", features = ["rt-tokio"], optional = true }
opentelemetry-prometheus = { version = "0.14", optional = true }
weblocks = "0.1.0"
futures-channel = "0.3.31"
[dependencies.getrandom]
version = "0.2"
features = ["js"]
[dev-dependencies]
wasm-bindgen-test = "0.3.55"
tempfile = "3"
serial_test = "2"
once_cell = "1"
# Telemetry dependencies for tests
prometheus = "0.13"
opentelemetry = "0.21"
opentelemetry_sdk = { version = "0.21", features = ["rt-tokio"] }
opentelemetry-prometheus = "0.14"
[features]
default = ["console_error_panic_hook", "console_log", "bundled-sqlite"]
fs_persist = []
telemetry = ["prometheus", "opentelemetry", "opentelemetry_sdk", "opentelemetry-prometheus"]
bundled-sqlite = ["rusqlite", "rusqlite/bundled"]
encryption = ["rusqlite", "rusqlite/sqlcipher"] # Android: links pre-built SQLCipher in jniLibs
encryption-commoncrypto = ["rusqlite", "rusqlite/bundled-sqlcipher"] # iOS/macOS: uses CommonCrypto instead of OpenSSL
encryption-ios = ["encryption-commoncrypto"] # Alias for iOS builds
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
rusqlite = { version = "0.30", features = ["vtab", "backup"], optional = true }
tokio = { version = "1.0", features = ["full"] }
# OpenTelemetry OTLP exporter (native only - requires network) - OPTIONAL
opentelemetry-otlp = { version = "0.14", optional = true }
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
tokio = { version = "1.0", features = ["full", "test-util"] }
opentelemetry-otlp = "0.14"