Skip to content
You are reading v0.1, which is not the current release. Go to v0.4.

From Rust

Khora shares Rust’s goal of native, predictable software without requiring a tracing GC, but it deliberately does not expose Rust’s ownership proof system as the ordinary programmer interface.

Khora source is written in a functional style with automatic memory management. The compiler/runtime use reference counting and ownership/reuse analysis to remove unnecessary reference-count operations and reuse uniquely owned storage where safe.

The programmer does not annotate borrows or lifetimes merely to express ordinary data flow.

Rust commonly uses Result<T, E> and explicit dependency values. Khora lifts recoverable failure into raises rows and external authority into with capability rows so both remain visible in function types without dominating every value-level composition.

Khora uses structured fibers and direct-style I/O. Application functions do not split into synchronous and async fn forms, and suspension is a runtime property rather than a different source-level function kind.

pub works the way it does in Rust, in both of the places you would expect it. A declaration without it belongs to its module, and a method without it belongs to the module that declares the type:

pub type Counter = { n: Int };
impl Counter {
pub fn doubled(self) -> Int { Counter::secret(self) }
fn secret(self) -> Int { self.n * 2 }
}

One difference. A method of a trait implementation needs no pub: it is reachable wherever the trait is, and what makes it public is the trait rather than the impl. Writing the keyword on one method of an impl Show for T would suggest the others were hidden.

Khora’s module path separator is :: as in Rust, but the declaration is module a::b; at the top of a file and the import is import a::b::{X}; — the file is the module, so there is no mod tree to keep in step with the directory layout.

Khora still needs explicit rules around foreign code, thread-affine state, and operations the compiler cannot prove safe. The production toolchain documents those boundaries rather than pretending automatic memory management eliminates systems-level invariants.

Khora is not intended to replace Rust for every low-level kernel/embedded use case. Its target is reliable native application and service software where ownership complexity is often a larger development cost than a benefit.

Khora 0.1.0built frombd964738afb6on 2026-10-17 20:41ZVersioningSecurityContributingReleasesSource