Files
trailbase/Cargo.toml

72 lines
3.0 KiB
TOML

[workspace]
resolver = "2"
members = [
"client/trailbase-rs",
"docs/examples/record_api_rs",
"examples/custom-binary",
"trailbase-apalis",
"trailbase-assets",
"trailbase-cli",
"trailbase-core",
"trailbase-extension",
"trailbase-schema",
"trailbase-sqlite",
"vendor/sqlean",
]
default-members = [
"client/trailbase-rs",
"trailbase-apalis",
"trailbase-assets",
"trailbase-cli",
"trailbase-core",
"trailbase-extension",
"trailbase-schema",
"trailbase-sqlite",
]
exclude = [
"vendor/refinery",
"vendor/rustc_tools_util",
]
# 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.
lto = "thin" # ("off", "thin", "fat")
codegen-units = 16
strip = "debuginfo"
# 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]
askama = { version = "0.13.0", default-features = false, features = ["derive", "std", "config"] }
axum = { version = "^0.8.1", features = ["multipart"] }
env_logger = { version = "^0.11.8", default-features = false, features = ["auto-color", "humantime"] }
libsqlite3-sys = { version = "0.32.0", features = ["bundled"] }
rusqlite = { version = "0.34.0", default-features = false, features = ["bundled", "column_decltype", "load_extension", "modern_sqlite", "functions", "limits", "backup", "hooks", "preupdate_hook"] }
tokio = { version = "^1.38.0", features = ["macros", "rt-multi-thread", "fs", "signal", "time", "sync"] }
trailbase-refinery-core = { path = "vendor/refinery/refinery_core", version = "0.8.16", default-features = false, features = ["rusqlite-bundled"] }
trailbase-refinery-macros = { path = "vendor/refinery/refinery_macros", version = "0.8.15" }
trailbase-apalis = { path = "trailbase-apalis", version = "0.1.0" }
trailbase-assets = { path = "trailbase-assets", version = "0.1.0" }
trailbase-sqlean = { path = "vendor/sqlean", version = "0.0.2" }
trailbase-extension = { path = "trailbase-extension", version = "0.2.0" }
trailbase-schema = { path = "trailbase-schema", version = "0.1.0" }
trailbase-sqlite = { path = "trailbase-sqlite", version = "0.2.0" }
trailbase = { path = "trailbase-core", version = "0.1.0" }
uuid = { version = "=1.12.1", default-features = false, features = ["std", "v4", "v7", "serde"] }