Skip to content
Query.Farm
Talk with Us

Package overview

The public surface spans three crates. Everything below is generated from the source, so a symbol’s page is the authority for its exact shape.

CrateWhat it is
vgiThe worker framework: the function traits, Worker, catalogs, storage, transports.
vgi-protocolThe wire types, re-exported by vgi at their original paths — cache_control, ipc, wire.
vgi-clientThe client: attach, discovery, and calling functions without DuckDB in the middle.
use vgi::function::ScalarFunction;              // 1 row  → 1 value
use vgi::table_function::TableFunction;        // args   → N rows  (+ TableProducer)
use vgi::table_in_out::TableInOutFunction;     // N rows → M rows, streaming
use vgi::aggregate::AggregateFunction;         // N rows → 1 value per group
use vgi::buffering::TableBufferingFunction;    // N rows → M rows, after all input

Each is registered on a Worker with the matching register_* call. copy_from and copy_to add two more for custom COPY formats.

`Result` and `RpcError` come from the RPC layer

Every trait method returns vgi_rpc::Result. From the release after 0.29.0 the vgi crate re-exports both, so use vgi::{Result, RpcError}; is the right version by construction. On 0.29.0 you need a direct vgi-rpc = "0.21" dependency — see the tutorial for why the version matters.