Skip to content
@arolang

ARO Language

The ARO Programming Language

ARO Language

ARO (Action-Result-Object) is a declarative programming language where business logic reads like a requirements document. Every statement follows one pattern:

Action the <Result> from/to/with the <Object>.

No classes. No callbacks. No boilerplate. Just what the system should do.

A REST API in ARO

Define your contract in OpenAPI, then write the handlers:

(createUser: User API) {
    Extract the <user-data> from the <request: body>.
    Create the <user> with <user-data>.
    Store the <user> into the <user-repository>.
    Emit a <UserCreated: event> with <user>.
    Return a <Created: status> with <user>.
}

That's a complete endpoint. The runtime handles validation, error responses, and HTTP plumbing.

React to Everything

Feature sets are triggered by events, not called directly:

(* HTTP route handlers match OpenAPI operationIds *)
(listUsers: User API) {
    Retrieve the <users> from the <user-repository>.
    Return an <OK: status> with <users>.
}

(* Domain events trigger side effects *)
(Send Welcome Email: UserCreated Handler) {
    Extract the <email> from the <event: email>.
    Send the <welcome-email> to the <email>.
    Return an <OK: status> for the <notification>.
}

(* Repository observers react to data changes *)
(Audit Log: user-repository Observer) {
    Extract the <change> from the <event: change>.
    Log <change> to the <console>.
    Return an <OK: status> for the <audit>.
}

Data Pipelines

Filter, aggregate, and transform collections in plain language:

Create the <orders> with [
    {id: 1, amount: 500, status: "active"},
    {id: 2, amount: 75, status: "cancelled"},
    {id: 3, amount: 300, status: "active"}
].

Filter the <active-orders> from the <orders> where <status> is "active".
Reduce the <total: Float> from the <active-orders> with sum(<amount>).

Happy Path Only

ARO code contains only the success case. If a user can't be retrieved, the runtime responds automatically:

Can not retrieve the user from the user-repository where id = 530

No try/catch. No error types. The code is the error message.

Quick Start

brew tap arolang/aro
brew install aro
aro run ./MyApp

Links

Pinned Loading

  1. aro aro Public

    ARO is a declarative language for specifying business features in a human-readable format that can be compiled and executed. Features are expressed as Action-Result-Object statements.

    Swift 11

Repositories

Showing 10 of 23 repositories
  • aro Public

    ARO is a declarative language for specifying business features in a human-readable format that can be compiled and executed. Features are expressed as Action-Result-Object statements.

    Swift 11 MIT 0 0 0 Updated Oct 6, 2026
  • homebrew-aro Public

    Homebrew formulae for ARO programming language

    arolang/homebrew-aro's past year of commit activity
    Ruby 0 0 0 0 Updated Oct 2, 2026
  • ShowFiles Public

    A Midnight Commander-style terminal file manager written in ARO.

    arolang/ShowFiles's past year of commit activity
    0 0 0 0 Updated Sep 18, 2026
  • example-sumup Public
    arolang/example-sumup's past year of commit activity
    Perl 0 0 0 0 Updated Aug 13, 2026
  • arolang/example-web-crawler's past year of commit activity
    Dockerfile 0 0 0 0 Updated Jul 24, 2026
  • glabtree Public

    Clones a gitlab group to local disk

    arolang/glabtree's past year of commit activity
    0 0 0 0 Updated Jul 24, 2026
  • PageBuilder Public

    A YAML-driven static site generator written in ARO. PageBuilder reads YAML files that describe pages as a tree of templates and renders them to HTML. Templates are bundled into the compiled binary so the whole tool ships as a single self-contained executable.

    arolang/PageBuilder's past year of commit activity
    HTML 0 0 0 0 Updated May 26, 2026
  • Lowbar Public

    A utility-belt plugin for the ARO language that gives you qualifiers and actions for working with collections, objects, types, and values.

    arolang/Lowbar's past year of commit activity
    HTML 0 0 0 0 Updated Apr 25, 2026
  • .github Public
    arolang/.github's past year of commit activity
    0 0 0 0 Updated Apr 19, 2026
  • aro-plugin-sdk-python Public

    ARO Plugin SDK for Python — decorators and helpers for writing ARO plugins in Python

    arolang/aro-plugin-sdk-python's past year of commit activity
    Python 0 0 0 0 Updated Apr 17, 2026

Top languages

Loading…

Most used topics

Loading…