Esc
Start typing to search...
Alpha v0.1.0

A modern language for data science

Keel combines Python's simplicity with Rust's performance. Strong types, parallel execution on CPU and GPU, and a curated package ecosystem—from browser to bare metal.

keel
Copied!

Why Keel?

Type-Safe at Scale

Catch errors at compile time with full type inference. Immutable by default, designed for large teams and complex codebases.

CPU & GPU ParallelPlanned

No GIL limitations. Native parallelization across all CPU cores, with CUDA and HIP support for GPU acceleration.

Universal Runtime

From browsers via WebAssembly to IoT devices and edge networks. One language for every platform.

Quality EcosystemPlanned

State-of-the-art package manager with vetted, high-quality modules. Multiple versions can coexist seamlessly.

Elegant & Expressive

First-class functions, automatic currying, pipe operators, and pattern matching with exhaustiveness checking.

Built-in Tooling

LSP support, interactive REPL, inline documentation, and helpful error messages with fuzzy suggestions.

Code Examples

keel
Copied!
Run
-- Automatic data lineage tracking
import DataFrame

let sales =
    DataFrame.fromRecords
        [ { product = "Laptop", revenue = 1200 }
        , { product = "Phone", revenue = 800 }
        ]

let filtered = DataFrame.filterGt "revenue" 500 sales

let withMargin =
    DataFrame.withColumn "margin" [240, 160] filtered

DataFrame.lineage withMargin

Built For Real Work

From data exploration to production deployment, Keel handles it all.

Data Analysis

Explore datasets with expressive pipelines. Strong typing catches errors early, while lazy evaluation handles data larger than memory.

Machine Learning

Build and train models with automatic differentiation. GPU acceleration via CUDA/HIP for heavy computation.

Scientific Computing

Precise numeric types and SIMD parallelism for simulations, numerical analysis, and research applications.

Web & WASM

Compile to WebAssembly for browser-based tools, interactive visualizations, and edge computing.

How Keel Compares

See how Keel stacks up against popular languages for data science.

FeatureKeelPythonRJulia
Type SystemStrong, inferredDynamicDynamicDynamic (optional types)
PerformanceNative speedInterpreted (slow)Interpreted (vectorized)JIT compiled
ParallelismPlannedGIL limitedLimitedBuilt-in
GPU SupportPlannedVia librariesVia librariesBuilt-in
Learning CurveModerateEasyModerateModerate
EcosystemPlannedVastVast (statistics)Moderate
Memory SafetyGuaranteedRuntime checksRuntime checksRuntime checks

Installation

bash
Copied!
# Run directly without installing
nix run git+https://codeberg.org/Keel/keel-cli

# Or build the package
nix build git+https://codeberg.org/Keel/keel-cli

# Enter a development shell
nix develop git+https://codeberg.org/Keel/keel-cli

Prerequisites: Rust 1.70+ and Cargo (for building from source) or Nix with flakes enabled (for Nix installation)

Roadmap

What's coming next for Keel.

Core Language

Completed

Type system, pattern matching, modules, REPL

Standard Library

In Progress

Collections, I/O, networking, concurrency primitives

Package Manager

In Progress

Dependency resolution, versioning, registry

GPU Backend

Planned

CUDA and HIP support for parallel computation

DataFrame Library

Completed

Polars-backed columnar data with window functions, schema validation, and metadata

ML Framework

Planned

Automatic differentiation and neural networks

Frequently Asked Questions