Skip to content
Kris Simon edited this page Jan 2, 2026 · 5 revisions

ARO Documentation

Welcome to the ARO programming language documentation.

ARO (Action-Result-Object) is a declarative domain-specific language for expressing business features in a human-readable format. ARO programs describe what should happen using natural language constructs, and the runtime handles how it executes.

About ARO

ARO is designed for building event-driven applications with clear, readable business logic. Key characteristics include:

  • Declarative Syntax: Express intent, not implementation details
  • Event-Driven Architecture: Feature sets respond to events automatically
  • Multi-File Applications: Organize code across files without imports
  • Built-in Services: HTTP server/client, file system, sockets out of the box

Documentation

Getting Started

Document Description
Getting Started Install ARO and write your first application
A Tour of ARO A comprehensive introduction to ARO's features

Language Guide

Detailed documentation of ARO language features:

Chapter Description
The Basics Fundamental concepts, syntax, and structure
Feature Sets Defining and organizing feature sets
Actions Built-in actions and the ARO statement pattern
Variables and Data Flow Variable binding, scoping, and publishing
Type System Primitives, collections, and OpenAPI types
Control Flow Conditionals, guards, and branching
Error Handling The "Code Is The Error Message" philosophy
Concurrency Async feature sets, sync statements
Events Event-driven programming and handlers
Application Lifecycle Start, run, and shutdown
HTTP Services HTTP server and client operations
File System File I/O and directory watching
Sockets TCP communication

Language Reference

Formal language specification:

Document Description
Grammar Complete EBNF grammar specification
Statements Statement types and syntax
Actions Reference Complete action verb reference

Extending ARO

Document Description
Action Developer Guide Creating custom actions in Swift

Quick Example

(* Application entry point *)
(Application-Start: Hello World) {
    <Log> "Hello, ARO!" to the <console>.
    <Return> an <OK: status> for the <startup>.
}

(* Graceful shutdown *)
(Application-End: Success) {
    <Log> "Goodbye!" to the <console>.
    <Return> an <OK: status> for the <shutdown>.
}

Run with:

aro run ./HelloWorld

Resources

Version

This documentation covers ARO 1.0.

Clone this wiki locally