Skip to content

Elegant, fast, and secure.

A declarative, fast, and highly portable programming language built for expressive data transformations and robust software.

bash
npm install -g @caja/cli
bash
yarn global add @caja/cli
bash
bun add -g @caja/cli

Strong Typing

Ensure correctness and memory safety with custom Type Aliases, Structs, and Generic types, catching errors early in development.

Types SyntaxStruct SyntaxMaps Syntax

Functional Programming

Unlock true functional power with Closures and Higher-Order Functions. Easily encapsulate configuration and state to create highly reusable, domain-specific function factories.

Caja Closures

Declarative Pipelines

Embrace a data-first pipeline design with the |> operator to make complex transformations intuitive and easy to read from top to bottom.

Using pipelines removes the need for deeply nested function calls and intermediate variables. The data-first approach ensures that transformations read naturally from left to right, resulting in cleaner, highly expressive, and easily maintainable code.

Cajá Pipeline Operator

Tail Call Optimization

Write recursive functions without fear. Cajá natively optimizes tail calls, reusing stack frames to prevent overflows and boost performance.

In many languages, deep recursion risks stack overflows due to excessive memory usage. TCO solves this by automatically flattening recursive calls that occur at the end of a function (the "tail"). This allows your recursive algorithms to run with the speed and constant memory footprint of a traditional while loop!