QuackDB.Binary (quackdb v0.5.3)

Copy Markdown View Source

Downloads and locates a DuckDB executable for local QuackDB.Server usage.

This is an explicit helper: QuackDB will not download executables unless you call install/1, install!/1, path/1, run the install Mix task, or start QuackDB.Server with duckdb: :managed.

Set QUACKDB_BINARY_PATH to force a system or custom executable. Set QUACKDB_BINARY_CACHE_DIR or pass :cache_dir to choose where managed downloads are stored.

Summary

Functions

Returns QuackDB's pinned DuckDB CLI version for managed downloads.

Downloads DuckDB CLI for the current OS/architecture unless already cached.

Like install/1, but raises on failure.

Returns known {version, target} checksum pairs for managed downloads.

Returns a path to a usable DuckDB binary, downloading it when needed.

Like path/1, but raises on failure.

Types

option()

@type option() ::
  {:path, Path.t()}
  | {:version, String.t()}
  | {:target, String.t()}
  | {:base_url, String.t()}
  | {:cache_dir, Path.t()}
  | {:sha256, String.t()}
  | {:force, boolean()}

Functions

default_version()

@spec default_version() :: String.t()

Returns QuackDB's pinned DuckDB CLI version for managed downloads.

install(options \\ [])

@spec install([option()]) :: {:ok, Path.t()} | {:error, QuackDB.Error.t()}

Downloads DuckDB CLI for the current OS/architecture unless already cached.

install!(options \\ [])

@spec install!([option()]) :: Path.t()

Like install/1, but raises on failure.

known_targets()

@spec known_targets() :: [{String.t(), String.t()}]

Returns known {version, target} checksum pairs for managed downloads.

path(options \\ [])

@spec path([option()]) :: {:ok, Path.t()} | {:error, QuackDB.Error.t()}

Returns a path to a usable DuckDB binary, downloading it when needed.

path!(options \\ [])

@spec path!([option()]) :: Path.t()

Like path/1, but raises on failure.