Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Vortex DuckDB

Rust bindings for DuckDB. Supports DuckDB precompiled libraries for fast builds and from source builds for debugging.

Prerequisites

  • Ninja: brew install ninja (macOS) | apt-get install ninja-build (Ubuntu)
  • CMake: brew install cmake (macOS) | apt-get install cmake (Ubuntu)
  • C++17 compatible compiler: GCC or Clang

Build Modes

Default (Release)

Link against the precompiled DuckDB release build.

cargo build -p vortex-duckdb

Debug Build

Opt into DuckDB debug build: VX_DUCKDB_DEBUG=1.

VX_DUCKDB_DEBUG=1 cargo build -p vortex-duckdb

AddressSanitizer & ThreadSanitizer

Enable both ASAN & TSAN: VX_DUCKDB_SAN=1.

VX_DUCKDB_DEBUG=1 VX_DUCKDB_SAN=1 cargo build -p vortex-duckdb

Environment Variables

Variable Effect
VX_DUCKDB_DEBUG Build from source in debug mode
VX_DUCKDB_ASAN Enable AddressSanitizer

Running Tests

# By default, link against the precompiled DuckDB release build.
cargo test -p vortex-duckdb

# Link against the DuckDB debug build from source.
VX_DUCKDB_DEBUG=1 cargo test -p vortex-duckdb

# Link against the DuckDB debug build from source with ASAN & TSAN.
ASAN_OPTIONS=detect_container_overflow=0 VX_DUCKDB_DEBUG=1 VX_DUCKDB_SAN=1 cargo test -p vortex-duckdb