Hi everyone
I'm a high school student and developer from South Korea, and I've been building a programming language and platform for AI/data pipelines in Rust.
It's called Xazz.
I started the project after running into a few problems with the usual Python-based workflow (pandas + PyTorch):
- Type and missing-value errors often surface only at runtime.
- Moving data between pandas, NumPy, and PyTorch can introduce additional conversions and copies.
- Data pipelines usually don't have a first-class policy/security layer.
So instead of building another Python wrapper, I decided to explore what it would look like to build the language and runtime layer itself.
Xazz currently includes:
- A compiler pipeline written in Rust: Lexer → Parser → AST → Type Checking → IR
- A Polars LazyFrame-based data-processing runtime
- Schema-aware and statically checked data pipelines
Option<T>for nullable values- A node-based Visual IDE
- A Burn integration for defining and running ML models
- A Synthetic Data Engine (SDE)
- A Neural Query Planner (NQP) research prototype
- Policy-as-Code and audit-related components for data pipelines
A small example looks like this:
type AirData = {
temp: float,
humidity: float,
pm10: Option<float>,
}
v dataset = load("air_data.csv") :: AirData
|> fillNull("pm10", strategy: "mean")
|> select(["temp", "humidity", "pm10"])
model AirPredictor {
Dense(64) -> ReLU() -> Dense(1)
}
v model = dataset
|> train(AirPredictor, target: "pm10", epochs: 10)
v prediction = dataset
|> predict(model, as: "pm10_pred")
|> chart {
type: line,
x: station,
y: pm10_pred,
title: "PM10 Prediction",
}
I also benchmarked the same four-stage pipeline on real Seoul air-quality data.
For datasets ranging up to 4.09 million rows, Xazz was measured at up to 2.62× faster than pandas in my benchmark.
The project is still experimental, and there are definitely rough edges. I've had plenty of crashes, cross-compilation problems, edge cases, and other bugs along the way. Building the parser, type checker, runtime, execution layer, and tooling myself has been a much bigger challenge than I initially expected.
That's also why I'm opening the source.
I'd particularly appreciate feedback on:
- language and type-system design
- compiler architecture
- runtime/data representation
- Rust implementation choices
- safety and policy enforcement
- areas where the current design is unnecessarily complicated
If you're interested in taking a look, the repository is here:
I'm still learning a lot from this project, so critical feedback is very welcome.