Expressions and types
Arithmetic, comparisons, boolean logic, case, casts, nullable columns and scalar bindings, strings, dates, and typed scalar / series / table values.
Reference
An overview of the language and runtime. Find the operation you need here, then follow the linked guides or specification for complete syntax and semantics.
At a glance
Programs bind immutable values, then transform tables with named clauses. Clauses run from left to right inside a table expression.
import "csv";
let prices = csv::read("prices.csv");
let summary = prices[
filter volume > 0,
select { average = mean(price), traded = sum(volume) },
by symbol,
order { traded desc }
];
Language
let name = value | Bind an immutable scalar, series, table, or function result. |
fn name(args) -> Type { ... } | Declare a typed reusable function. |
import "plugin" | Load a bundled I/O plugin. |
extern fn ... from "header.hpp" | Declare a native function or source. |
extern type Name from "header.hpp" | Declare an opaque resource, such as a database connection, that functions open, pass, return, and close. See the connections guide. |
Table { field = values } | Create a table from column expressions or literals. |
filter predicate | Keep rows for which the predicate is true. |
select { fields } | Project fields, create computed fields, or aggregate with by. |
update { fields } | Add or replace fields while preserving the remaining columns. |
map { name = expr, ... } | Evaluate scalar fields once per input row and return exactly the named columns. Rows and fields run in order, so effectful extern calls are supported. |
by key | Group a select or update. |
order { keys } | Sort rows using ascending or descending keys. |
rename, distinct, head, tail | Rename, deduplicate, or limit rows. |
See the transformation tutorial for first use, and the language specification for grammar and exact rules.
Functionality
Arithmetic, comparisons, boolean logic, case, casts, nullable columns and scalar bindings, strings, dates, and typed scalar / series / table values.
Grouped reduction, grouped update, ranking, cumulative functions, rolling windows, resampling, and TimeFrames.
Inner, outer, semi, anti, cross, and as-of joins; row and column binding; wide-to-long and long-to-wide reshaping.
CSV, JSON, Parquet, directory enumeration, command-line argument parsing, SQLite/ADBC, Kafka, and cloud-backed paths through plugins.
Typed user functions, native extern functions, compile-time map expansion, and table-schema introspection.
The REPL, script execution, C++23 transpilation, Python notebooks, and the R/dplyr integration.
C++ code generation, continuous streams, producer queues, and formula-based model specifications.