Read it. Understand it.
Declare a binding on first assignment. Use functions, structured values and explicit error handling to express your idea.
Language guideThis page is not yet translated into your selected language. You have been returned to that language’s home page.
THE KU PROGRAMMING LANGUAGE
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.
01 — THE APPROACH
Get to know Ku through its actual behavior, with the current boundaries always in view.
Declare a binding on first assignment. Use functions, structured values and explicit error handling to express your idea.
Language guideMove by default, clone intentionally, and borrow read-only in synchronous calls. The current rules are documented alongside their limits.
Ownership & boundariesRun with the interpreter, package an executable runner, or explore native C. Check the support matrix before choosing a backend.
Explore the toolchain02 — IN PRACTICE
Import a module, build a value, and encode it as JSON. The ? operator propagates errors instead of hiding them.
Read the JSON referenceimport json from "std.json"
fn main(): null! {
message = { language: "Ku", hello: "world" }
text = json.stringify(message)?
println(text)
return ok(null)
}{"hello":"world","language":"Ku"}03 — FIND YOUR WAY
BUILDING WITH CARE, STILL IN PROGRESS
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.