This page is not yet translated into your selected language. You have been returned to that language’s home page.

v0.0.18/Experimental prerelease

THE KU PROGRAMMING LANGUAGE

An idea.
A little Ku.

A small language with room to grow. Readable syntax, explicit ownership, and a toolchain you can explore from the first line.

+Early by design. Explore, experiment, share feedback.

LESS CEREMONY.MORE EXPRESSION.
hello.kuKU
fn main() {
    println("Hello Ku")
}
TERMINAL●

❯ ku run hello.ku

Hello Ku

InterpreterView source ↗
SMALL LANGUAGE. CLEAR INTENT.Start small. Understand what you build.

01 — THE APPROACH

A smaller surface.
A clearer picture.

Get to know Ku through its actual behavior, with the current boundaries always in view.

01

Read it. Understand it.

Declare a binding on first assignment. Use functions, structured values and explicit error handling to express your idea.

Language guide
02

Make ownership explicit.

Move by default, clone intentionally, and borrow read-only in synchronous calls. The current rules are documented alongside their limits.

Ownership & boundaries
03

Choose your execution path.

Run with the interpreter, package an executable runner, or explore native C. Check the support matrix before choosing a backend.

Explore the toolchain

02 — IN PRACTICE

Familiar data.
Explicit errors.

Import a module, build a value, and encode it as JSON. The ? operator propagates errors instead of hiding them.

Read the JSON reference
Synchronous example. Backend and version details are documented in the reference.
json.ku
import json from "std.json"

fn main(): null! {
    message = { language: "Ku", hello: "world" }
    text = json.stringify(message)?
    println(text)
    return ok(null)
}
OUTPUT{"hello":"world","language":"Ku"}

03 — FIND YOUR WAY

A good place to begin.

Installation & downloads

BUILDING WITH CARE, STILL IN PROGRESS

A work in progress. A story to follow.

This documentation describes the frozen scope of the v0.0.18 experimental prerelease. Actual publication and downloadable assets are recorded in GitHub Releases.

Source is available to view. No open-source license has been granted.
Type to search.