You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+9-1Lines changed: 9 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -204,12 +204,20 @@ You can adjust this behavior in a number of ways:
204
204
cargo build --examples
205
205
```
206
206
207
-
3. Installing the duckdb development packages will usually be all that is required, but
207
+
3._Experimental:_ Setting `DUCKDB_DOWNLOAD_LIB=1` makes the build script download pre-built DuckDB binaries from GitHub Releases. This always links against the dynamic library in the archive (setting `DUCKDB_STATIC` has no effect), and it effectively automates the manual steps above. The archives are cached in `target/duckdb-download/<target>/<version>` and that directory is automatically added to the linker search path. The downloaded version always matches the `libduckdb-sys` crate version.
208
+
209
+
```shell
210
+
DUCKDB_DOWNLOAD_LIB=1 cargo test
211
+
```
212
+
213
+
4. Installing the duckdb development packages will usually be all that is required, but
208
214
the build helpers for [pkg-config](https://github.com/alexcrichton/pkg-config-rs)
209
215
and [vcpkg](https://github.com/mcgoo/vcpkg-rs) have some additional configuration
210
216
options. The default when using vcpkg is to dynamically link,
211
217
which must be enabled by setting `VCPKGRS_DYNAMIC=1` environment variable before build.
212
218
219
+
When none of the options above are used, the build script falls back to this discovery path and will emit the appropriate `cargo:rustc-link-lib` directives if DuckDB is found on your system.
220
+
213
221
### ICU extension and the bundled feature
214
222
215
223
When using the `bundled` feature, the ICU extension is not included due to crates.io's 10MB package size limit. This means some date/time operations (like `now() - interval '1 day'` or `ts::date` casts) will fail. You can load ICU at runtime:
0 commit comments