Skip to content
Language SDKs

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 parity

Build 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 parity

Build 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 parity

Build 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 implementation

Build 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 parity

Build 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 parity

Build 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
Don't see your language?

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.

Expert help

Need a custom worker built?

We build VGI workers and DuckDB extensions for clients across stacks — pick the language, we'll ship the worker.