-
Notifications
You must be signed in to change notification settings - Fork 194
Expand file tree
/
Copy pathCargo.toml
More file actions
138 lines (131 loc) · 7.54 KB
/
Copy pathCargo.toml
File metadata and controls
138 lines (131 loc) · 7.54 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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
[workspace]
resolver = "2"
members = [
"client/testfixture/guests/rust",
"crates/*",
"docs/examples/record_api_rs",
"examples/coffee-vector-search/guests/rust",
"examples/collab-clicker-ssr/guests/rust",
"examples/custom-binary",
"examples/wasm-guest-rust",
]
default-members = [
"crates/assets",
"crates/cli",
"crates/client",
"crates/core",
"crates/extension",
"crates/qs",
"crates/schema",
"crates/sqlite",
"crates/wasm-runtime-axum",
"crates/wasm-runtime-common",
"crates/wasm-runtime-host",
]
exclude = [
"crates/extension-so",
# Fork of pgrow2serde depends on external PG setup.
"vendor/pgrow2serde",
]
# https://doc.rust-lang.org/cargo/reference/profiles.html
[profile.release]
panic = "unwind"
opt-level = 3
# LTO is fun. A few observations:
# * PGO doesn't work with LTO: https://github.com/llvm/llvm-project/issues/57501
# * Cranelift doesn't work with LTO: missing symbols during linking.
# * Setting `lto` to true or "fat" has a significant impact on build times
# manifesting as `LLVM_passes` and `finish_ongoing_codegen` in the build
# timings. Also increasing the `codegen-units` doesn't seem to have an effect
# in "fat"-mode.
# * In TB benchmarks "fat" did not perform better than "thin" LTO.
# * However, both "fat" LTO and "codegen-units = 1" reduced binary size. We're
# still using it in github releases.
lto = "thin" # ("off", "thin", "fat")
codegen-units = 16
strip = "debuginfo" # ("symbols", "debuginfo", "none")
# Workaround for https://github.com/gwenn/lemon-rs/issues/78. sqlite3-parser
# requires 1+MB stack frames to parse trivial SQL statements, which is larger
# than Window's default stack size of 1MB. This is due to the rust compiler not
# overlapping stack variables of disjoint branches in dev mode and instead
# allocating them all.
[profile.dev.package.sqlite3-parser]
opt-level = 1
[workspace.dependencies]
argon2 = { version = "^0.6.0", default-features = false, features = ["alloc", "getrandom", "password-hash"] }
askama = { version = "0.16.1", default-features = false, features = ["derive", "std", "config"] }
axum = { version = "^0.8.9", default-features = false, features = ["multipart"] }
base64 = { version = "0.23.1", default-features = false, features = ["alloc", "std"] }
bytes = { version = "1.12.1", features = ["serde"] }
chrono = { version = "0.4.45", default-features = false }
clap = { version = "^4.6.6", features=["derive", "env"] }
cron = "0.17.0"
crossfire = { version = "3.1.20", default-features = false, features = ["tokio"] }
env_logger = { version = "^0.11.11", default-features = false, features = ["auto-color", "humantime"] }
flume = { version = "0.12.0", default-features = false, features = ["select", "async"] }
futures-util = { version = "0.3.34", default-features = false, features = ["alloc", "spin"] }
http = { version = "1.5.0", default-features = false }
http-body-util = { version = "0.1.5", default-features = false }
hyper = { version = "1.11.1", default-features = false }
itertools = { version = "0.15.0", default-features = false, features = ["use_std"] }
jsonwebtoken = { version = "11.0.0", default-features = false, features = ["use_pem", "rust_crypto"] }
libsqlite3-sys = { version = "0.38.2", default-features = false, features = ["bundled", "preupdate_hook"] }
litegis = { version = "0.0.7", default-features = false }
log = { version = "0.4.34", default-features = false }
minijinja = { version = "2.24.0", default-features = false }
parking_lot = { version = "0.12.5", default-features = false, features = ["send_guard", "arc_lock"] }
rand = "^0.10.2"
reqwest = { version = "0.13.5", default-features = false, features = ["rustls", "json"] }
rmcp-openapi = { git = "https://github.com/ignatz/rmcp-openapi-minimal.git", branch = "main" }
rusqlite = { version = "0.40.2", default-features = false, features = ["bundled", "cache", "column_decltype", "functions", "backup", "preupdate_hook"] }
rust-embed = { version = "^8.12.0", default-features = false, features = ["mime-guess"] }
serde = { version = "^1.0.229", default-features = false, features = ["derive", "rc", "std"] }
serde_json = { version = "^1.0.151", default-features = false }
serde_qs = { version = "1.1.3", default-features = false, features = [] }
serde_rusqlite = "0.43.0"
sqlite-vec = { git = "https://github.com/ignatz/sqlite-vec", branch = "v0.1.10-alpha.4-fork", default-features = false }
sqlite3-parser = "0.17.0"
tokio = { version = "^1.53.1", default-features = false, features = ["fs", "io-std", "macros", "net", "rt-multi-thread", "signal", "sync", "time"] }
tokio-rustls = { version = "0.26.5", default-features = false }
tracing = { version = "0.1.44", default-features = false }
tracing-subscriber = { version = "0.3.23", default-features = false, features = ["smallvec", "std", "fmt", "json"] }
trailbase = { path = "crates/core", version = "0.2.0", default-features = false, features=["wasm", "pg"] }
trailbase-assets = { path = "crates/assets", version = "0.2.0" }
trailbase-auth-config = { path = "crates/auth-config", version = "0.0.0" }
trailbase-auth-ui-component = { path = "crates/auth-ui", version = "0.0.0" }
trailbase-build = { path = "crates/build", version = "0.1.1" }
trailbase-client = { path = "crates/client", version = "0.10.1" }
trailbase-extension = { path = "crates/extension", version = "0.3.0" }
trailbase-pg-schema = { path = "crates/pg-schema", version = "0.0.1" }
trailbase-pgrow2serde = { git = "https://github.com/ignatz/pgrow2serde", branch = "main" }
trailbase-qs = { path = "crates/qs", version = "0.1.0" }
trailbase-reactive = { path = "crates/reactive", version = "0.1.0" }
trailbase-refinery = { path = "crates/refinery", version = "0.1.0" }
trailbase-schema = { path = "crates/schema", version = "0.1.0" }
trailbase-sqlite = { path = "crates/sqlite", version = "0.3.0", default-features = false }
trailbase-sqlvalue = { path = "crates/sqlvalue", version = "0.2.0" }
trailbase-wasi-keyvalue = { path = "crates/wasi-keyvalue", version = "0.1.0" }
trailbase-wasm = { path = "crates/wasm-runtime-guest", version = "0.6.1" }
trailbase-wasm-common = { path = "crates/wasm-runtime-common", version = "0.3.1" }
trailbase-wasm-component-repo = { path = "crates/wasm-component-repo", version = "0.1.0" }
trailbase-wasm-runtime-axum= { path = "crates/wasm-runtime-axum", version = "0.1.0" }
trailbase-wasm-runtime-host = { path = "crates/wasm-runtime-host", version = "0.1.0" }
ts-rs = { version = "12", features = ["uuid-impl", "serde-json-impl", "indexmap-impl"] }
utoipa = { version = "5.5.0", default-features = false, features = ["axum_extras", "debug", "indexmap", "uuid", "macros"] }
utoipa-axum = { version = "0.2.0" }
utoipa-swagger-ui = { version = "9.0.2", features = ["axum", "vendored"] }
uuid = { version = "1", default-features = false, features = ["std", "v4", "v7", "serde"] }
wasmtime = { version = "48.0.1", features = ["winch"] }
wasmtime-wasi = { version = "48.0.1", default-features = false, features = [] }
wasmtime-wasi-http = { version = "48.0.1", features = ["p2"] }
wasmtime-wasi-io = { version = "48.0.1", features = [] }
# When building TrailBase as a standalone workspace, use local submodule paths.
# These [patch] sections are ignored when TrailBase is consumed as a dependency
# by an external workspace (e.g. via git subtree without submodules populated),
# which falls back to the git sources declared above.
[patch."https://github.com/ignatz/sqlite-vec"]
sqlite-vec = { path = "vendor/sqlite-vec/bindings/rust" }
[patch."https://github.com/ignatz/pgrow2serde"]
trailbase-pgrow2serde = { path = "vendor/pgrow2serde" }
[patch."https://github.com/ignatz/rmcp-openapi-minimal.git"]
rmcp-openapi = { path = "vendor/rmcp-openapi-minimal" }