x1zz/PORTFOLIO
The combination of art and technology예술과 기술의 결합

PORTFOLIO

장서우·Sewoo Jang
v0.2.8.xzzRust + PolarsApache-2.03.84× vs pandas

Rust-based DSL compiler (x1zzLang) and graphical pipeline editor (Visual IDE) — a data analysis platform combining scripting ergonomics with compiled performance.

Rust 기반 DSL 컴파일러(x1zzLang)와 그래픽 파이프라인 편집기(Visual IDE)로 구성된 데이터 분석 DSL 플랫폼.

x1zzLangon GitHubGitHub x1zzLang Visual IDEon GitHubGitHub
// 01 — X1ZZLANG · CORE ENGINE// 01 — X1ZZLANG · 코어 엔진

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>를 통해 타입 수준에서 널 안전성을 강제합니다.

Language design · Compiler engineering · Type system research · 8th Korea CodeFair 2026언어 설계 · 컴파일러 엔지니어링 · 타입 시스템 연구 · 제8회 한국 코드페어 2026

// COMPARISON — PANDAS VS X1ZZLANG// 비교 — PANDAS VS X1ZZLANG

Python · pandas
import pandas as pd

df = pd.read_csv("data.csv")
df = df[df["pm10"] > 50]
result = df.groupby("station")["pm10"].mean()
print(result)

// 라이브러리 설치 필요. 수동 널 처리. 런타임 타입 검증.

// 라이브러리 설치 필요. 수동 널 처리. 런타임 타입 검증.

x1zzLang · .xzz
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 + venvSingle 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개 명령으로 실행까지.

// 02 — ARCHITECTURE · DEPENDENCY ISOLATION// 02 — 아키텍처 · 의존성 격리

// 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 runtime

CLI 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// 크레이트 역할 분담

CrateRole역할Deps의존성
x1zz (CLI)Argument parsing, import, new, emit, check인수 파싱, import, new, emit, checkNone없음
x1zz-coreShared AST, Token, Error types공유 AST, 토큰, 에러 타입serde only
x1zz-compilerLexer / Parser / Codegen / Emitter렉서 / 파서 / 코드젠 / 이미터None없음
x1zz-execPolars execution enginePolars 실행 엔진Polars, encoding_rs
x1zz-runnerExecution binary (spawned by CLI)실행 바이너리 (CLI가 스폰)via x1zz-exec
x1zz-serverREST API server (Visual IDE backend)REST API 서버 (Visual IDE 백엔드)axum, tokio
x1zz (CLI)
~2–5 MB

Compiler · Schema inference · Scaffolding

컴파일러 · 스키마 추론 · 스캐폴딩

x1zz-runner
30+ MB

Polars execution engine (subprocess)

Polars 실행 엔진 (서브프로세스)

// 03 — BENCHMARK · X1ZZLANG VS PANDAS// 03 — 벤치마크 · X1ZZLANG VS PANDAS

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 백엔드의 실행 전 쿼리 최적화 결과입니다. 측정 기준: 종단간 파이프라인 처리량.

benches/run_benchmark.py · benches/benchmark_pipeline.xzz
3.84×faster than pandaspandas 대비 빠름3.4M rows · Seoul AQ
benches/x1zzLang_benchmark2.png
x1zzLang Benchmark: 3.84× faster than pandas
// 04 — FEATURES & STATUS// 04 — 기능 현황
Feature기능Description설명Status상태
x1zz runx1zz runCompile and execute .xzz pipeline.xzz 파이프라인 컴파일 및 실행Stable안정
x1zz importx1zz importAuto-infer CSV schema → generate type blockCSV 스키마 자동 추론 → 타입 블록 생성Stable안정
x1zz newx1zz newScaffold project with sample CSV and example샘플 CSV와 예제로 프로젝트 스캐폴딩Stable안정
x1zz emit rustx1zz emit rustTranspile .xzz → Rust source (Polars LazyFrame).xzz를 Polars LazyFrame Rust 소스로 트랜스파일Stable안정
Option<T> type systemOption<T> 타입 시스템Null-safe column declarations, fillNull operator널 안전 컬럼 선언, fillNull 연산자Stable안정
Built-in chart 내장 chart 블록bar / line / pie / scatter HTML outputbar / line / pie / scatter HTML 차트 출력Stable안정
EUC-KR CSVEUC-KR CSV 지원Auto-detect and decode CP949 Korean CSVCP949 한글 CSV 자동 감지 및 디코딩Stable안정
x1zz check (NQP)x1zz check (NQP)Static analysis via Neural Query PlannerNeural Query Planner 기반 정적 분석Experimental실험적
x1zz sdex1zz sdeSynthetic data generation engine합성 데이터 생성 엔진Preview프리뷰
// 05 — X1ZZLANG VISUAL IDE// 05 — X1ZZLANG 비주얼 IDE

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를 통해 실행됩니다.

React 18 · Vite · @xyflow/react · i18next · Lucide React | Backend: x1zzLang engine (Rust + Polars)
x1zzLang Visual IDE — DAG Pipeline Canvasx1zzLang Visual IDE — DAG 파이프라인 캔버스
x1zzLang Visual IDE — graphical DAG pipeline editor

// TRANSPILATION PIPELINE// 트랜스파일 파이프라인

Visual DAGx1zzTranspiler (dagWalker).xzz sourceBackend /executeResults

// 9 BUILT-IN OPERATORS// 9개 내장 연산자

File Input— CSV/Excel + schema inference— CSV/Excel + 스키마 추론
Filter— Filter rows by condition— 조건으로 행 필터
Select— Select columns— 열 선택
Group By— Group and aggregate— 그룹화 및 집계
Count— Count rows— 행 수 계산
Sort— Sort by column(s)— 열 기준 정렬
Take— Top N rows— 상위 N개 행
Drop Null— Remove null rows— 결측치 행 제거
Fill Null— Fill nulls with value— 결측치 값으로 채우기

// 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
// 06 — ROADMAP// 06 — 개발 로드맵
Phase단계Goal목표Status상태
Phase 11단계DSL syntax, type system, compiler pipelineDSL 문법, 타입 시스템, 컴파일러 파이프라인Complete완료
Phase 22단계Polars integration, CLI tooling, chart outputPolars 통합, CLI 도구, 차트 출력Complete완료
Phase 33단계Visual IDE, graphical pipeline editorVisual IDE, 그래픽 파이프라인 편집기Complete완료
Phase 44단계More operators, join, schema evolution추가 연산자, 조인, 스키마 진화In progress진행 중
Phase 55단계Natural language query (NQP), AI-augmented analysis자연어 쿼리 인터페이스(NQP), AI 증강 분석Experimental실험적
// 07 — ECOSYSTEM// 07 — 생태계 구성

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으로 컴파일·실행합니다.

01

DESIGN디자인

Visual IDE canvas

02

TRANSPILE트랜스파일

DAG → .xzz code

03

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