Getting started

Choose an entry point based on what you want to do: learn FeatureQL, use it from Python, or run a complete local service stack.

Path 1: Try it in the browser

FeatureQL playgrounds on this site are interactive. Click one to edit the query, run it, and see results — no installation needed.

Here's a taste: a FeatureQL query that defines a greeting feature and evaluates it for a given name.

FeatureQL
DEFINE
    -- Define features
    your_name := INPUT(VARCHAR),
    a_message_to_you := 'Hello, ' || your_name || '!'
RETURN
    -- Return features
    a_message_to_you
FOR
    -- Bind values to features for evaluation
    your_name := BIND_VALUE('FeatureMesh') -- <-- insert your name here
;
Result
A_MESSAGE_TO_YOU VARCHAR
Hello, FeatureMesh!

Under the hood, the playground sends your FeatureQL query to a remote FeatureMesh registry, which translates it to SQL. The SQL then runs in a DuckDB WASM module directly in your browser.

This is the fastest way to learn the language. Start with the FeatureQL foundations . If you already know SQL, read Design principles first — FOR is the data universe, not a WHERE — then FeatureQL for the Impatient . Assistants should load help('mental_model') before help('getting_started').

Path 2: Install the Python library

The package requires Python 3.12 or newer.

pip install featuremesh
bash

The featuremesh package bundles the FeatureQL transpilation engine and runs locally — no server or account needed. Use BatchClient for batch analytics: DuckDB works out of the box, while Trino needs a matching sql_executor. Use ServingClient for the DataFusion serving path, either embedded in Python or through a customer-operated featuremeshd service.

A minimal batch example (works immediately after install):

from featuremesh import BatchClient

client = BatchClient()

result = client.query("""
    RETURN
        F1 := 1,
        F2 := 2,
        F3 := F1 + F2;
""")

print(result.dataframe)
python

For shared feature definitions, other batch backends, or real-time serving with ServingClient, see Python library installation and modes .

Path 3: Run the demos Docker container

You do not need the container for ordinary batch analytics or embedded serving — those run from the Python client. Install the featuremesh-demos container when you want a self-contained service stack around the client:

  • An HTTP Batch API and MCP server for agents and non-Python callers
  • The independent Rust serving and analytics proxy services to exercise locally
  • Jupyter notebooks and sample data for an end-to-end walkthrough

Get started: github.com/featuremesh/demos

Which path should I choose?

GoalRecommended path
Learn the FeatureQL languageBrowser playgrounds — start with Hello World
Run FeatureQL on your own data Python library — zero config with DuckDB
Real-time serving from Python Python library — embedded or customer-operated ServingClient
Give FeatureQL tools to an assistant FeatureQL with AI
Grade an LLM on FeatureQL (demos stack) Demos repo tools
HTTP / MCP servers, or local Rust serving + proxy Demos Docker container
Automate with HTTP or MCP Tools
Prove answers on your backends Conformance tests
Evaluate FeatureMesh for your teamPython library on your data; demos container only if you need the API/MCP stack or local serving services