O Language

O Language

Learn O Language in order: write a program, explore the runtime, build a web application and use the API reference.

O Language pagesOverview
On this page

O Language is a system-oriented functional programming language. Its Go runtime combines values, functions and collections with APIs for files, processes, sockets, HTTP servers and databases.

O Language is a separate open-source project from OnixOS. The projects are related, and OnixOS maintains a package recipe for the runtime, but the distribution does not require the language to install or run. The runtime source is the authority for current behavior.

Read these pages in order

  1. Install O Language.
  2. Getting started — write and run your first source file.
  3. Language basics — values, functions, conditions, collections and loops.
  4. Project files — source files, modules, manifests and process definitions.
  5. Choose a direction: system APIs or web programming.

The practical guide walks through a complete small program before moving on to files, processes, networking, databases and HTTP.

Getting Started

These pages introduce the language and its project conventions.

Advanced topics

Use these after the core syntax and project layout are familiar.

Web

The built-in server can handle HTTP routes from an O Language program. The framework adds a project layout and CLI around those runtime APIs.

O Language Web Framework

API reference

Look up exact syntax, runtime values, built-ins, system operations and command behavior.

The reference follows interpreter revision eb2301cfe4dbf2e6c1f10802bfbec2be3a797e99, which matches the OnixOS package snapshot 20260825.898_eb2301c. The interpreter, bytecode VM and ELF path do not have identical feature support. Check the installed version and the relevant reference page before relying on a form that is not used in the beginner examples.

Free books

The O Language book repository contains Turkish and English editions:

The book’s 2020 examples predate the runtime revision documented here. Treat them as background material and compare executable syntax with the current guides.

Source code