Skip to content
kalandra-langPublic

About

Kalandra is a functional, parallel, distributed programming language.

Topics

Resources

Contributing

Stars

930 stars

Watchers

23 watching

Forks

Latest commit

 

History

1,615 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kalandra

A native language for CPU and GPU computing. kalandra.dev.

Kalandra's native implementation uses C++23 and MLIR/LLVM. It combines immutable values, automatic memory management, structured parallel tasks and explicit GPU execution. CPU execution supports macOS on Apple silicon and Linux/Windows on x86-64 and ARM64; GPU execution uses Apple Metal on macOS and CUDA/Vulkan on qualified Linux x86-64 hardware. Windows GPU support is experimental and hardware-unqualified.

fn double(value: int) -> int:
  value * 2

fn main() -> int ! TaskError:
  try parallel:
    try await spawn double(21)

Native source files use .k. The compiler is under development; the native implementation guide, language design and roadmap describe supported features and remaining work.

The native toolchain version is 0.99.2. Run kalandra --version to identify an installed compiler. Release notes cover Linux CUDA/Vulkan, experimental Windows GPU packages and CPU call fixes.

Install

Download the toolchain and kalandra-native.vsix from GitHub Releases. Choose the standalone Metal DMG for macOS 26+ on Apple silicon, or the standalone CPU archive matching your Linux or Windows x86-64/ARM64 build host. Linux requires Ubuntu 24.04 / glibc 2.39 or newer; modern Raspberry Pi boards require 64-bit Raspberry Pi OS Trixie. Windows requires C++ Build Tools and the Windows SDK, with ARM64 tools for Windows 11 ARM64. Linux x86-64 also offers CUDA and Vulkan compiler archives. Windows x86-64/ARM64 GPU archives are experimental: hardware execution remains unqualified. Verify the accompanying SHA-256 checksum and keep the complete toolchain directory together.

Each standalone compiler package includes all five CPU target runtimes and host-native linkers. Select a destination with --platform; Linux and Windows destinations still require their system development libraries. See the cross-compilation guide.

Follow the installation guide for platform prerequisites and PATH setup. The editor guide covers VS Code's Install from VSIX command and other LSP editors. Native tools and the installed editor client require no JavaScript runtime.

Build from source

Install the matching LLVM/MLIR 23.1.3 toolchain, toml++ 3.4.0, CMake and Ninja described in the build guide, then run:

cmake --preset native
cmake --build --preset native
ctest --preset native

Compile and run a native program:

build/native/native/kalandra main.k -o program
./program

The native toolchain does not require Bun or Node. Local CPU execution and Metal/CUDA/Vulkan GPU backends are implemented; distributed execution follows a separate roadmap.

Website and documentation

Start with the tutorial, language reference, built-in function index or contributor guide. Repository design/planning documentation is indexed in docs/README.md.

The website lives in apps/website. Its native language documentation is authored in Tiramisu under apps/website/src/content/native.

bun install --frozen-lockfile
bun run dev
bun run check

The root Bun workspace contains website development tools. bun run build builds the static site; the CMake commands above build and test the native compiler. The native VS Code extension has its own tooling in native/editor/vscode.

After building the native tools, verify the documentation with bun run verify:docs. This extracts the actual Tiramisu blocks, compares them with the rendered site, and checks expected diagnostics, CPU results, multi-file projects and local Git dependency workflows. --tools /path/to/bin selects another native tool directory. On a supported Mac with a Metal-enabled build, run bun run verify:docs -- --gpu to compile and execute the GPU examples too. Machine-provisioning recipes and the Windows-only PowerShell invocation are reported separately from executed programs. Linux qualification runs the CPU verifier in CI.

Contributors and supporters

Thank you to everyone who contributed code, feedback, documentation, and financial support to Clio and helped keep these ideas alive. That work is part of Kalandra's history.

See all contributors · Contributing guide

Support ongoing development through Kalandra on Open Collective. Historical acknowledgements, including Ivo Balbaert, are preserved in backers.md.

Kalandra backers

Origins and license

Kalandra continues the ideas of Clio. Its implementation starts fresh here. The website scaffold comes from Tiramisu Docs.

Apache-2.0. See LICENSE and NOTICE.

About

Kalandra is a functional, parallel, distributed programming language.

Topics

Resources

Contributing

Stars

930 stars

Watchers

23 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages