[package] name = "mentat_duckdb" version.workspace = true edition = "2021" rust-version.workspace = true license.workspace = true repository.workspace = true authors.workspace = true description = "Datomic-compatible Datalog engine exposed as a DuckDB extension" [lib] crate-type = ["cdylib"] [features] # `script` is ON by default: mino is pure Rust (no extra toolchain), and every # script runs sandboxed (no host filesystem) with step/heap/depth limits. default = ["script"] # The mino scripting surface: `edn_eval(store, script)`. script = ["mentat_duckdb_store/script"] [dependencies] # Pin to the DuckDB v1.5.6 line. Tilde => crate patch updates, same DuckDB. # loadable-extension transitively enables `vtab` + `duckdb-loadable-macros`; # `vscalar` is added for the scalar functions. duckdb = { version = "~1.10506.0", features = ["loadable-extension", "vscalar"] } # The engine, storing in DuckDB tables (docs/duckdb-native-storage-plan.md). # Not the `mentat` crate: that one opens SQLite files. mentat_duckdb_store = { path = "store" } core_traits = { path = "../core-traits" } edn = { path = "../edn" } mentat_core = { path = "../core" } mentat_query_algebrizer = { path = "../sqlite/query-algebrizer" } mentat_query_projector = { path = "../sqlite/query-projector" } mentat_transaction = { path = "../sqlite/transaction" } public_traits = { path = "../sqlite/public-traits" } serde_json = "1"