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.
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
;| 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 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) 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?
| Goal | Recommended path |
|---|---|
| Learn the FeatureQL language | Browser 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 team | Python library on your data; demos container only if you need the API/MCP stack or local serving services |