Workers in your language.
One wire protocol, multiple implementations. Every SDK interoperates over the same Apache Arrow IPC format.
Every implementation speaks the same wire protocol, so a DuckDB session can attach workers written in different languages in the same query. Pick the one your team already runs.
C#
Worker feature parityBuild VGI workers for .NET 10 with QueryFarm.Vgi. All five function shapes, catalogs, optimizer integration, settings, secrets, COPY formats, caching, and a cross-language RPC client.
Install
dotnet add package QueryFarm.Vgi --version 0.3.0
Go
Feature parityBuild single-binary VGI workers in Go on Apache Arrow. Includes HTTP serving, OpenTelemetry, dispatch hooks, external storage, and checksummed payloads.
Install
go get github.com/Query-farm/vgi-go/vgi
Java
Feature parityBuild VGI workers on JDK 25+ with farm.query:vgi. Annotation-driven functions, catalogs, HTTP, and a shared-memory side channel.
Install
# Gradle (Kotlin DSL), JDK 25+:
implementation("farm.query:vgi:0.27.0")
Python
Reference implementationBuild VGI workers in Python — the reference implementation, with strict typing, every transport, streaming, introspection, shared memory, and OpenTelemetry. The vgi package is the worker framework; vgi-rpc is its transport layer.
Install
pip install vgi-python # or: uv add vgi-python
Rust
Feature parityBuild VGI workers in Rust with tight memory control and wire-level compatibility. Optional HTTP, JWT, OAuth-PKCE, mTLS, OpenTelemetry, and Sentry features.
Install
cargo add vgi
TypeScript
Feature parityBuild fully typed VGI workers for Bun, Node.js, and Deno. Includes HTTP server/client, OpenTelemetry, dispatch hooks, external storage, and checksummed payloads.
Install
npm install @query-farm/vgi # or: bun add @query-farm/vgi
VGI is a protocol — anyone can implement it
The wire format is Apache Arrow IPC over a pluggable transport. If your language has Arrow bindings (R, Julia, …) it can speak VGI. The full byte-level wire-protocol spec documents the exact format.
Working on a port? Get in touch — we're happy to help, and to list it here.
Need a custom worker built?
We build VGI workers and DuckDB extensions for clients across stacks — pick the language, we'll ship the worker.