mirror of
https://github.com/trailbaseio/trailbase
synced 2026-04-21 13:37:44 +00:00
81 lines
3.5 KiB
TOML
81 lines
3.5 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"crates/apalis",
|
|
"crates/assets",
|
|
"crates/build",
|
|
"crates/cli",
|
|
"crates/client",
|
|
"crates/core",
|
|
"crates/extension",
|
|
"crates/js-runtime",
|
|
"crates/qs",
|
|
"crates/refinery",
|
|
"crates/schema",
|
|
"crates/sqlean",
|
|
"crates/sqlite",
|
|
"docs/examples/record_api_rs",
|
|
"examples/custom-binary",
|
|
]
|
|
default-members = [
|
|
"crates/assets",
|
|
"crates/build",
|
|
"crates/cli",
|
|
"crates/client",
|
|
"crates/core",
|
|
"crates/extension",
|
|
"crates/js-runtime",
|
|
"crates/qs",
|
|
"crates/schema",
|
|
"crates/sqlite",
|
|
]
|
|
|
|
# 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]
|
|
askama = { version = "0.14.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.35.0", features = ["bundled"] }
|
|
rusqlite = { version = "0.37.0", default-features = false, features = ["bundled", "column_decltype", "load_extension", "modern_sqlite", "functions", "limits", "backup", "hooks", "preupdate_hook"] }
|
|
rust-embed = { version = "8.4.0", default-features = false, features = ["mime-guess"] }
|
|
tokio = { version = "^1.38.0", features = ["macros", "rt-multi-thread", "fs", "signal", "time", "sync"] }
|
|
tracing = { version = "0.1.40", default-features = false }
|
|
tracing-subscriber = { version = "0.3.18", default-features = false, features = ["smallvec", "std", "fmt", "json"] }
|
|
trailbase-apalis = { path = "crates/apalis", version = "0.1.0" }
|
|
trailbase-assets = { path = "crates/assets", version = "0.2.0" }
|
|
trailbase-build = { path = "crates/build", version = "0.1.1" }
|
|
trailbase-client = { path = "crates/client", version = "0.5.0" }
|
|
trailbase-sqlean = { path = "crates/sqlean", version = "0.0.3" }
|
|
trailbase-extension = { path = "crates/extension", version = "0.3.0" }
|
|
trailbase-js = { path = "crates/js-runtime", version = "0.2.0" }
|
|
trailbase-qs = { path = "crates/qs", 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" }
|
|
trailbase = { path = "crates/core", version = "0.2.0" }
|
|
uuid = { version = "1", default-features = false, features = ["std", "v4", "v7", "serde"] }
|