A Rust-based DSL for Data Analysis데이터 분석을 위한 Rust 기반 DSL
x1zzLang compiles .xzz scripts into optimized Polars LazyFrame execution plans through a Rust-based compiler pipeline. Schema is declared upfront, and null-safety is enforced at the type level via Option<T>.
x1zzLang은 .xzz 스크립트를 Rust 컴파일러 파이프라인으로 최적화된 Polars LazyFrame 실행 계획으로 컴파일합니다. 스키마를 타입 시스템에서 사전 선언하고, Option<T>를 통해 타입 수준에서 널 안전성을 강제합니다.
// COMPARISON — PANDAS VS X1ZZLANG// 비교 — PANDAS VS X1ZZLANG
import pandas as pd
df = pd.read_csv("data.csv")
df = df[df["pm10"] > 50]
result = df.groupby("station")["pm10"].mean()
print(result)// 라이브러리 설치 필요. 수동 널 처리. 런타임 타입 검증.
// 라이브러리 설치 필요. 수동 널 처리. 런타임 타입 검증.
type AirQuality = {
station: string,
pm10: Option<float>,
}
v data = load("data.csv") :: AirQuality
|> cast("pm10", "float")
|> filter(pm10 > 50)
|> groupBy("station")
|> mean("pm10")// 설치 불필요. 스키마 사전 선언. Option<T> 타입 수준 널 안전.
// 설치 불필요. 스키마 사전 선언. Option<T> 타입 수준 널 안전.
| 항목 | 항목 | Python (pandas) | x1zzLang | ||
|---|---|---|---|---|---|
| Library deps | 라이브러리 의존성 | pandas, numpy | 없음 (내장) | ||
| Type validation | 타입 검증 시점 | Runtime | 런타임 | Schema declaration time | 스키마 선언 시점 |
| Null handling | 널 처리 | Manual NaN checks | 수동 NaN 체크 | Option<T> 타입 선언 | |
| Env setup | 환경 설정 | pip install + venv | Single binary | 단일 바이너리 |
// QUICK START — CLI// 빠른 시작 — CLI
x1zz new my-project # 프로젝트 + 샘플 CSV 생성 cd my-project x1zz import data.csv # 스키마 자동 추론 → 타입 블록 작성 x1zz run main.xzz # 컴파일 + 실행
// No virtual environment. No dependency management. 3 commands to execution.
// 가상환경 불필요. 의존성 관리 불필요. 3개 명령으로 실행까지.
// CARGO WORKSPACE// 카고 워크스페이스
x1zz (CLI binary) ~2–5 MB
│ clap · indicatif · colored · csv · anyhow · encoding_rs
│ NO Polars · NO Tokio
│
├── x1zz-compiler Lexer → Parser → Codegen → Emitter
│ └── x1zz-core Shared AST / Token / Error (serde only)
│
└── [subprocess spawn] ──► x1zz-runner ~30+ MB
└── x1zz-exec Polars LazyFrame runtimeCLI binary never links Polars (~2–5 MB). x1zz run spawns x1zz-runner as a subprocess carrying all Polars dependencies. Communication via CLI arguments only — no IPC protocol.
CLI 바이너리는 Polars를 직접 링크하지 않아 ~2–5 MB를 유지합니다. x1zz run 호출 시 x1zz-runner를 서브프로세스로 스폰하여 Polars 의존성을 처리합니다. IPC 프로토콜 없이 CLI 인수만 사용합니다.
// CRATE RESPONSIBILITIES// 크레이트 역할 분담
| Crate | Role | 역할 | Deps | 의존성 |
|---|---|---|---|---|
| x1zz (CLI) | Argument parsing, import, new, emit, check | 인수 파싱, import, new, emit, check | None | 없음 |
| x1zz-core | Shared AST, Token, Error types | 공유 AST, 토큰, 에러 타입 | serde only | |
| x1zz-compiler | Lexer / Parser / Codegen / Emitter | 렉서 / 파서 / 코드젠 / 이미터 | None | 없음 |
| x1zz-exec | Polars execution engine | Polars 실행 엔진 | Polars, encoding_rs | |
| x1zz-runner | Execution binary (spawned by CLI) | 실행 바이너리 (CLI가 스폰) | via x1zz-exec | |
| x1zz-server | REST API server (Visual IDE backend) | REST API 서버 (Visual IDE 백엔드) | axum, tokio |
x1zz (CLI)Compiler · Schema inference · Scaffolding
컴파일러 · 스키마 추론 · 스캐폴딩
x1zz-runnerPolars execution engine (subprocess)
Polars 실행 엔진 (서브프로세스)
Benchmark against an equivalent pandas pipeline on a 3.4M-row Seoul air quality dataset. Polars LazyFrame backend applies query optimization before execution. Measurement: end-to-end pipeline throughput.
서울 대기질 데이터셋 340만 행 기준 동등한 pandas 파이프라인 대비 벤치마크. Polars LazyFrame 백엔드의 실행 전 쿼리 최적화 결과입니다. 측정 기준: 종단간 파이프라인 처리량.
.png)
| Feature | 기능 | Description | 설명 | Status | 상태 |
|---|---|---|---|---|---|
| x1zz run | x1zz run | Compile and execute .xzz pipeline | .xzz 파이프라인 컴파일 및 실행 | Stable | 안정 |
| x1zz import | x1zz import | Auto-infer CSV schema → generate type block | CSV 스키마 자동 추론 → 타입 블록 생성 | Stable | 안정 |
| x1zz new | x1zz new | Scaffold project with sample CSV and example | 샘플 CSV와 예제로 프로젝트 스캐폴딩 | Stable | 안정 |
| x1zz emit rust | x1zz emit rust | Transpile .xzz → Rust source (Polars LazyFrame) | .xzz를 Polars LazyFrame Rust 소스로 트랜스파일 | Stable | 안정 |
| Option<T> type system | Option<T> 타입 시스템 | Null-safe column declarations, fillNull operator | 널 안전 컬럼 선언, fillNull 연산자 | Stable | 안정 |
| Built-in chart | 내장 chart 블록 | bar / line / pie / scatter HTML output | bar / line / pie / scatter HTML 차트 출력 | Stable | 안정 |
| EUC-KR CSV | EUC-KR CSV 지원 | Auto-detect and decode CP949 Korean CSV | CP949 한글 CSV 자동 감지 및 디코딩 | Stable | 안정 |
| x1zz check (NQP) | x1zz check (NQP) | Static analysis via Neural Query Planner | Neural Query Planner 기반 정적 분석 | Experimental | 실험적 |
| x1zz sde | x1zz sde | Synthetic data generation engine | 합성 데이터 생성 엔진 | Preview | 프리뷰 |
Graphical Pipeline Builder for .xzz.xzz를 위한 그래픽 파이프라인 편집기
Visual IDE for designing data pipelines and executing x1zzLang code. Connect nodes on a canvas to build transformation workflows without writing code. The DAG is transpiled into .xzz source in real-time and executed via the x1zzLang REST API.
데이터 파이프라인을 시각적으로 구성하고 x1zzLang 코드를 생성·실행하는 그래픽 IDE입니다. 캔버스에서 노드를 연결하여 변환 워크플로우를 구성합니다. DAG 구성이 실시간으로 .xzz 소스로 트랜스파일되어 REST API를 통해 실행됩니다.

// TRANSPILATION PIPELINE// 트랜스파일 파이프라인
// 9 BUILT-IN OPERATORS// 9개 내장 연산자
// KEY FEATURES// 주요 기능
- →Drag-and-drop visual DAG canvas드래그 앤 드롭 DAG 캔버스
- →Real-time .xzz code generation실시간 .xzz 코드 생성
- →One-click execution with table results원클릭 실행 + 테이블 결과
- →Tab-based multi-workflow management탭 기반 멀티 워크플로우 관리
- →Undo / Redo + auto-save실행 취소 / 재실행 + 자동 저장
- →Export .xzz · Container grouping.xzz 내보내기 · 컨테이너 그룹핑
- →Bilingual UI (Korean / English)한영 이중언어 UI
| Phase | 단계 | Goal | 목표 | Status | 상태 |
|---|---|---|---|---|---|
| Phase 1 | 1단계 | DSL syntax, type system, compiler pipeline | DSL 문법, 타입 시스템, 컴파일러 파이프라인 | Complete | 완료 |
| Phase 2 | 2단계 | Polars integration, CLI tooling, chart output | Polars 통합, CLI 도구, 차트 출력 | Complete | 완료 |
| Phase 3 | 3단계 | Visual IDE, graphical pipeline editor | Visual IDE, 그래픽 파이프라인 편집기 | Complete | 완료 |
| Phase 4 | 4단계 | More operators, join, schema evolution | 추가 연산자, 조인, 스키마 진화 | In progress | 진행 중 |
| Phase 5 | 5단계 | Natural language query (NQP), AI-augmented analysis | 자연어 쿼리 인터페이스(NQP), AI 증강 분석 | Experimental | 실험적 |
x1zzLang and x1zzLang Visual IDE are an end-to-end data pipeline platform. Visual IDE generates .xzz code from DAG configurations. x1zzLang compiles and executes them with Polars LazyFrame.
x1zzLang과 x1zzLang Visual IDE는 종단간(end-to-end) 데이터 파이프라인 플랫폼입니다. Visual IDE가 DAG 구성으로부터 .xzz 코드를 생성하고, x1zzLang이 Polars LazyFrame으로 컴파일·실행합니다.
DESIGN디자인
Visual IDE canvas
TRANSPILE트랜스파일
DAG → .xzz code
EXECUTE실행
Rust / Polars backend
// Issues open · PRs suspended until October 2026 (8th Korea CodeFair evaluation period) · Apache-2.0
// 이슈 오픈 중 · PR 2026년 10월까지 보류 (제8회 한국 코드페어 심사 기간) · Apache-2.0