Advanced workflows

Compile, stream, and model data

Use the same table-expression vocabulary for application embedding, continuous inputs, and model-oriented analysis.

Compile scripts to C++23

ibex_compile transpiles an .ibex script to C++23 using the Ibex runtime. Use it when a pipeline needs to ship as part of a native application. Typed extern fn declarations form the boundary for application-specific data sources and sinks.

# transpile a script, then build it with your application
ibex_compile analysis.ibex

See the integration guide for interactive host use and the specification for extern-function semantics.

Apply table pipelines to streams

Stream sources evaluate a bracketed clause list for each incoming batch. The pipeline syntax is unchanged: filter, update, select, grouping, and time-window operations remain ordinary Ibex expressions. This lets batch and continuous workflows share their transformation definitions.

Event-time windows

Time-based windowing can use incoming data timestamps, allowing historical replay and live input to use the same source definition.

Plugin sources

Bundled I/O plugins supply file, database, and Kafka sources. See the I/O guide for setup and examples.

Feed a stream through a producer queue

A producer queue provides a ready-made handoff for application-owned batches. It is useful when a C++ program owns the connection, decoding, or lifecycle, but wants Ibex to perform the downstream table work. Keep the source boundary typed so table schemas are known before the pipeline executes.

Describe regressions with formulas

Model specifications use R-style formula syntax in the query context. Use the model and matrix helpers from the function reference to construct model inputs and access their outputs alongside ordinary table transformations.