[workspace] resolver = "2" members = [ "benchmarks", "dst", "macros", "pg_search", "stressgres", "tests", "tokenizers", ] # A bare `cargo build`/`check`/`clippy`/`test` at the root covers only the # extension stack. Other members pull in dependencies the extension does not # need (`benchmarks`, for example, builds the bundled DuckDB from C++ source). # Build them with `-p ` or `--workspace`. default-members = ["pg_search", "tokenizers"] [workspace.package] version = "0.26.0" edition = "2024" license = "AGPL-3.0" [profile.dev] panic = "unwind" # Backtraces through dependencies keep file:line, but the full DWARF (variable # and type info) is dropped; it is most of a debug target dir and is only # needed when stepping through a dependency in a debugger. Workspace crates # keep full debuginfo. Override locally with a `[profile]` section in # `~/.cargo/config.toml` if you need to debug into a dependency. [profile.dev.package."*"] debug = "line-tables-only" # `cc` passes `-g` to the bundled DuckDB C++ build based on this. DuckDB is a # benchmark comparison engine, not something we debug, and its objects with # `-g` cost gigabytes per target dir. [profile.dev.package.libduckdb-sys] debug = false [profile.release] # Thin LTO avoids the high memory usage of fat LTO without affecting benchmarks. lto = "thin" panic = "unwind" opt-level = 3 codegen-units = 1 # Optimized build with debug symbols for profiling. Disabling debug assertions # keeps DST assertions out of the build. [profile.release-with-debug] inherits = "release" debug = true debug-assertions = false # The DST profile uses moderate optimization so unoptimized ParadeDB execution # does not dominate query-generation time. It retains DWARF, debug assertions, # and overflow checks for debugging and invariant validation. LTO is disabled # because it obscures stack frames and exhausts rustc memory with SanitizerCoverage. [profile.dst] inherits = "release" opt-level = 2 lto = "off" debug = true debug-assertions = true overflow-checks = true [workspace.dependencies] pgrx = "=0.19.2" pgrx-tests = "=0.19.2" # Keep the Git revisions for `tantivy`, `tantivy-common`, and the crates.io # patches in sync. tantivy = { git = "https://github.com/paradedb/tantivy.git", package = "tantivy", rev = "7540730ee070f1e668017bf0f003024554eaab0a", features = [ "columnar-zstd-compression", "lz4-compression", "paradedb", # Enables the SSTable backend. "quickwit", "stemmer", "stopwords", ], default-features = false } tantivy-common = { git = "https://github.com/paradedb/tantivy.git", package = "tantivy-common", rev = "7540730ee070f1e668017bf0f003024554eaab0a" } tantivy-jieba = "0.20.0" [patch.crates-io] tantivy-common = { git = "https://github.com/paradedb/tantivy.git", package = "tantivy-common", rev = "7540730ee070f1e668017bf0f003024554eaab0a" } tantivy-tokenizer-api = { git = "https://github.com/paradedb/tantivy.git", package = "tantivy-tokenizer-api", rev = "7540730ee070f1e668017bf0f003024554eaab0a" } [workspace.lints.clippy] large_futures = "warn"