Releases: grauwen/utl-x
Releases · grauwen/utl-x
UTL-X v1.2.2
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 --versionUTL-X v1.2.1
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 --versionUTL-X v1.2.0
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 --versionUTL-X v1.1.0
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 --versionUTL-X v1.0.2
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 --versionUTL-X v1.0.1
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 —
.nameis shorthand for$input.namein-emode - 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 utlxRequirements
- JDK 17 or later (for JVM mode)
- Or download the native binary (no JVM needed)
UTL-X v1.0.0
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 transform —
utlx script.utlx input.xml(notransformsubcommand needed) --to/--fromshort 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 --versionRequirements
- 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
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
transformsubcommand needed:utlx script.utlx input.xml # implicit transform --to/--fromaliases — 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 --versionSupported 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.