quackdb 0.2.0

Ergonomic binding to DuckDB
docs.rs failed to build quackdb-0.2.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: quackdb-0.5.0

QuackDB

Current status: core functionality (connect, query, and retrieve results via Arrow) is usable. Anything more advanced requires you to access the internal, unsafe API, or access FFI directly.

Roadmap -- 0.2.0

  • Appender
  • Proper string type: UTF-8, non-null terminated

Roadmap -- 0.3.0

  • Table functions
  • Replacement scans

Roadmap -- 0.4.0

  • Row-based iterator
  • Ergonomic types

Roadmap (Milestone) -- 0.5.0

  • Clean up error types
  • Clean up &self and &mut self receivers
  • Streaming arrow (optional)
  • Polars support (optional)

API Level

The main API is the high level, safe API.

quackdb-internal exposes low-level wrapper over types from libduckdb-sys with Rust types, but without checks.

Raw handles can be used with FFI functions for lowest-level interaction.

API conventions

  • High level API expose low level handle types as pub field
  • High level API follow Rust naming
  • Low level API wraps raw handle and all basic operations
  • Low level API dereferences to raw handle
  • Low level API use Rust types
  • Low level API follow DuckDB naming