XDL - Extended Data Language

A modern Rust implementation of the Extended Data Language (XDL), providing IDL-compatible data analysis and visualization capabilities with GPU acceleration.

Get Started View on GitHub


Active Development - Beta Release - 100+ functions, 50+ ML features, GPU acceleration, and 60-70% IDL compatibility! 🚀

🚀 Getting Started

Installation

git clone https://github.com/TuringWorks/xdl
cd xdl
cargo build --release
cargo install --path xdl-cli

Quick Example

; Create data and visualize
x = findgen(100)
y = sin(x * !pi / 50)
plot, x, y, title='XDL Plot'

Installation Guide → Quick Start → GPU Demo →


📚 Documentation Sections

Getting Started

Essential resources to begin using XDL

Core Features

Language implementation and core functionality

Graphics & Visualization

Comprehensive 2D and 3D graphics capabilities

2D Graphics

3D Visualization

GPU Acceleration

High-performance GPU computing features

Compatibility

IDL/GDL and MATLAB compatibility layers

IDL/GDL Compatibility

MATLAB Compatibility

Advanced Topics

Machine learning, Python integration, and more

Development

Contributing and building XDL


✨ Key Features

Memory Safety

Leveraging Rust’s ownership system for safe memory management

Performance

Native code performance with zero-cost abstractions and GPU acceleration

Concurrency

Safe parallelism using Rust’s async/await and threading primitives

Interoperability

FFI interfaces to existing scientific libraries and Python 3.13 integration


🏗️ Architecture

XDL is structured as a Cargo workspace with the following crates:

Crate Description
xdl-core Core data structures, types, and array operations
xdl-parser Lexer and parser for XDL/IDL syntax
xdl-interpreter AST interpreter and execution engine
xdl-runtime Runtime system with memory management
xdl-stdlib Standard library functions
xdl-ffi Foreign function interfaces
xdl-cli Command-line interface and REPL
xdl-gui Graphical user interface
xdl-amp GPU acceleration module
xdl-viz3d 3D visualization engine
xdl-charts Charting library

📊 Project Status

Phase Status Description
Phase 1 ✅ Complete Foundation & Core Types
Phase 2 ✅ Complete Parser & Interpreter
Phase 3 ✅ Complete Standard Library (100+ functions)
Phase 4 ✅ Complete Graphics & Visualization (50+ procedures)
Phase 5 ✅ Complete 3D Visualization
Phase 6 ✅ Complete MATLAB Compatibility (basic to moderate)
Phase 7 ✅ Complete IDL/GDL Compatibility (60-70% compatible)
Phase 8 ✅ Complete GPU Acceleration (XDL-AMP)
Phase 9 ✅ Complete Machine Learning (50+ functions)
Phase 10 🚧 Current Compatibility & Bug Fixes
Phase 11 📋 Planned Performance Optimization

Current Focus (Phase 10):

  • User-defined procedures (PRO/ENDPRO) - critical missing feature
  • Complex number edge cases
  • Advanced array indexing improvements
  • Test coverage expansion
  • Error message improvements

🤝 Contributing

Contributions are welcome! We appreciate:

  • Bug reports and feature requests
  • Code contributions via pull requests
  • Documentation improvements
  • Performance benchmarks and optimizations

See our Contributing Guide for more details.


📄 License

This project is licensed under the MIT License - see the LICENSE file for details.