ArxLang ArxLang ArxLang
  • Home
  • Arx
  • ASTx
  • IRx
  • ArxPy
  • ArxJIT
  • Tools
    • Tooling Overview
    • ArxPM
    • VS Code
    • Jupyter Kernel
    • Douki
ArxLang

ArxLang compiler ecosystem

ArxLang is an experimental statically typed language and compiler toolchain. The Arx frontend parses source into ASTx nodes. IRx performs semantic analysis, lowers supported nodes to LLVM IR, and builds native artifacts. IRx also provides runtime components for Apache Arrow-backed collections.

Getting started Apache Arrow support

Python 3.10+ LLVM Apache Arrow C++ Apache-2.0

example.x
```
title: Arrow-backed rows
```
fn main() -> i32:
  var rows: dataframe[id: i32, score: f64] = dataframe({
    id: [1, 2, 3],
    score: [0.5, 0.8, 1.0],
  })
  return cast(rows.nrows(), i32)

Compiler architecture

The compilation path separates source parsing, program representation, semantic analysis, LLVM lowering, and runtime integration. Each package owns a defined part of that path.

Arx

Source frontend

Arx owns indentation-sensitive syntax, modules, classes, templates, tests, and the compiler CLI. The parser emits ASTx nodes rather than an Arx-specific AST model.

ASTx

Shared AST model

ASTx provides language-independent nodes for types, expressions, statements, functions, control flow, classes, templates, and collections. Frontends and backends use the same model.

IRx

Analysis and LLVM backend

IRx analyzes symbols, calls, types, control flow, templates, classes, and FFI contracts. It lowers the supported ASTx subset to LLVM IR and activates native runtime features when they are required.

Packages

Package pages describe implemented behavior, known limitations, and planned work. The labels below summarize the current maturity of each primary package.

Functional prototype

Arx

The source language, lexer, parser, project model, test runner, and native compiler CLI.

Arx documentation →

Functional, evolving

ASTx

A language-agnostic Python model for typed abstract syntax trees and compiler tooling.

ASTx documentation →

Functional experimental backend

IRx

Semantic analysis, LLVM lowering, native artifacts, diagnostics, and runtime feature activation.

IRx documentation →

API foundation only

ArxPy

The developing Python-facing compiler API, currently focused on structured diagnostics and public error types.

ArxPy documentation →

Frontend foundations only

ArxJIT

A developing decorator route from a restricted Python subset to ASTx and IRx; decorated calls still use Python fallback today.

ArxJIT documentation →

Related tools

These projects provide project management, editor integration, notebook execution, and structured docstring tooling. They are maintained in separate repositories.

Project workflows

ArxPM

Manages Arx projects, environments, dependencies, builds, runs, packaging, and publishing workflows.

ArxPM documentation →

Syntax highlighting

VS Code extension

Provides TextMate highlighting, language configuration, file associations, and icons for Arx source files.

VS Code documentation →

Wrapper kernel

Jupyter kernel

Compiles notebook cells with the Arx CLI and returns native program output to Jupyter.

Jupyter kernel documentation →

Docstring tooling

Douki

Validates and synchronizes YAML docstrings. Arx uses the Douki structure for source and Python documentation.

Douki documentation →

IRx native runtime

Apache Arrow integration

IRx includes a native Apache Arrow C++ runtime. Generated LLVM calls an IRx-owned C ABI, while Arrow C++ manages container layout and ownership. The required runtime artifacts are compiled and linked when a program uses the corresponding feature.

Implementation details and current limits →

  • Arrays with Arrow C Data interoperability
  • Tensors backed by arrow::Tensor
  • DataFrames backed by arrow::Table
  • Series backed by arrow::ChunkedArray
  • RecordBatch IPC and PyArrow round trips

Project status: The primary packages are pre-production. Documented implemented behavior is tested, but language semantics and package APIs can still change. See the ecosystem status for current capabilities and limitations, and the roadmap for planned work.

Back to top

Copyright © 2022-2026 ArxLang

  • Apache-2.0

  • GitHub

  • Code of Conduct