Skip to content

Releases: grauwen/utl-x

UTL-X v1.2.2

07 Jun 19:54

Choose a tag to compare

UTL-X v1.2.2

Native Binaries

Platform Download
Linux x64 utlx-linux-x64
macOS ARM64 utlx-macos-arm64
Windows x64 utlx-windows-x64.exe

Installation

# Linux / macOS
chmod +x utlx-*
sudo mv utlx-* /usr/local/bin/utlx
utlx --version

UTL-X v1.2.1

26 May 22:27

Choose a tag to compare

UTL-X v1.2.1

Native Binaries

Platform Download
Linux x64 utlx-linux-x64
macOS ARM64 utlx-macos-arm64
Windows x64 utlx-windows-x64.exe

Installation

# Linux / macOS
chmod +x utlx-*
sudo mv utlx-* /usr/local/bin/utlx
utlx --version

UTL-X v1.2.0

26 May 09:29

Choose a tag to compare

UTL-X v1.2.0

Native Binaries

Platform Download
Linux x64 utlx-linux-x64
macOS ARM64 utlx-macos-arm64
Windows x64 utlx-windows-x64.exe

Installation

# Linux / macOS
chmod +x utlx-*
sudo mv utlx-* /usr/local/bin/utlx
utlx --version

UTL-X v1.1.0

04 May 07:40

Choose a tag to compare

UTL-X v1.1.0

Native Binaries

Platform Download
Linux x64 utlx-linux-x64
macOS ARM64 utlx-macos-arm64
Windows x64 utlx-windows-x64.exe

Installation

# Linux / macOS
chmod +x utlx-*
sudo mv utlx-* /usr/local/bin/utlx
utlx --version

UTL-X v1.0.2

28 Apr 08:13

Choose a tag to compare

UTL-X v1.0.2

Native Binaries

Platform Download
Linux x64 utlx-linux-x64
macOS ARM64 utlx-macos-arm64
Windows x64 utlx-windows-x64.exe

Installation

# Linux / macOS
chmod +x utlx-*
sudo mv utlx-* /usr/local/bin/utlx
utlx --version

UTL-X v1.0.1

09 Apr 10:53

Choose a tag to compare

UTL-X v1.0.1

Bug fixes and CLI enhancements.

New Features

  • -e / --expression — Inline UTL-X expressions, no script file needed:
    echo '{"name":"Alice"}' | utlx -e '.name'
    cat data.xml | utlx -e '.person.name' -r
  • -r / --raw-output — Strip quotes from string output (like jq's -r):
    NAME=$(echo '{"name":"Alice"}' | utlx -e '.name' -r)
  • Dot shorthand.name is shorthand for $input.name in -e mode
  • CLI reference docs — Complete CLI reference and 25 jq-to-utlx examples

Bug Fixes

  • B11: OData serializer no longer wraps nested arrays in {"value": [...]} — only root-level collections are wrapped
  • B12: YAML output no longer starts with unnecessary --- document separator

Test Coverage

  • 447 conformance tests passing (100%)
  • 57 CLI interface tests passing
  • 32 Kotlin unit tests passing

Installation

# macOS
brew tap grauwen/utlx && brew install utlx

# Linux
curl -L https://github.com/grauwen/utl-x/releases/download/v1.0.1/utlx-linux-x64.bin -o utlx
chmod +x utlx && sudo mv utlx /usr/local/bin/

# Windows (Chocolatey)
choco install utlx

Requirements

  • JDK 17 or later (for JVM mode)
  • Or download the native binary (no JVM needed)

UTL-X v1.0.0

07 Apr 11:46

Choose a tag to compare

UTL-X v1.0.0

Universal Transformation Language Extended - A format-agnostic functional transformation language.

Highlights

  • 652 standard library functions across 18 categories
  • Identity mode — instant format conversion without a script:
    cat data.xml | utlx          # XML to JSON (smart flip)
    cat data.json | utlx         # JSON to XML (smart flip)
    cat data.csv | utlx          # CSV to JSON
    cat data.xml | utlx --to yaml  # override with --to
  • Implicit transformutlx script.utlx input.xml (no transform subcommand needed)
  • --to / --from short aliases for format flags
  • Strong type system with compile-time checking
  • Multi-input transformations across different formats
  • GraalVM native binary support for instant startup
  • 447 conformance tests passing (100%)

Supported Formats

Tier 1 — Data formats:

Format Input Output
JSON Yes Yes
XML Yes Yes
CSV Yes Yes
YAML Yes Yes
OData Yes Yes

Tier 2 — Schema/metadata formats:

Format Input Output
XSD Yes Yes
JSCH (JSON Schema) Yes Yes
Avro Yes Yes
Protobuf Yes Yes
OSCH (OData/EDMX) Yes Yes
TSCH (Table Schema) Yes Yes

CLI Quick Start

# Build
./gradlew :modules:cli:jar

# Instant format conversion (no script needed)
cat data.xml | ./utlx
cat data.json | ./utlx --to yaml

# Script-based transformation
./utlx transform script.utlx input.xml -o output.json

# Validate & lint
./utlx validate script.utlx
./utlx lint script.utlx

# Explore 652 stdlib functions
./utlx functions
./utlx functions search xml

# Version
./utlx --version

Requirements

  • JDK 17 or later

Roadmap

Component Status
UTL-X CLI (utlx) 1.0.0 Released
UTL-X Engine (utlxe) In Development
UTL-X IDE Support (utlxd) In Development
JavaScript Runtime Future
.NET Runtime Future

License

Dual-licensed: AGPL-3.0 (open source) / Commercial license available.

UTL-X v0.9.0

07 Apr 06:16

Choose a tag to compare

UTL-X v0.9.0

Universal Transformation Language Extended - A format-agnostic functional transformation language.

Highlights

  • Format-agnostic transformations — XML, JSON, CSV, YAML, XSD, JSON Schema, Avro, Protobuf
  • 120+ standard library functions — string, array, math, date, type, encoding, XML, and more
  • Identity mode (NEW) — instant format conversion without writing a script:
    cat data.xml | utlx          # XML to JSON (smart flip)
    cat data.json | utlx         # JSON to XML (smart flip)
    cat data.csv | utlx          # CSV to JSON
    cat data.xml | utlx --to yaml  # override with --to
  • Implicit transform — no transform subcommand needed:
    utlx script.utlx input.xml    # implicit transform
  • --to / --from aliases — concise format flags
  • Strong type system with compile-time checking
  • Multi-input transformations — join data from multiple files/formats
  • 460 conformance tests passing (100%)

CLI Quick Start

# Build
./gradlew :modules:cli:jar

# Format conversion (no script needed)
cat data.xml | ./utlx
cat data.json | ./utlx --to yaml

# Script-based transformation
./utlx transform script.utlx input.xml -o output.json

# Version
./utlx --version

Supported Formats

Format Input Output
JSON Yes Yes
XML Yes Yes
CSV Yes Yes
YAML Yes Yes
XSD Yes Yes
JSON Schema Yes Yes
Avro Yes Yes
Protobuf Yes Yes

Requirements

  • JDK 17 or later

License

Dual-licensed: AGPL-3.0 (open source) / Commercial license available.