Skip to content
Kris Simon edited this page Mar 1, 2026 · 7 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:

Fundamentals

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
Computations Calculation and expression evaluation
Dates Working with date and time values
Concurrency Async feature sets, sync statements

Runtime & Events

Chapter Description
Events Event-driven programming and handlers
Application Lifecycle Start, run, and shutdown
Services Built-in service architecture

I/O & Communication

Chapter Description
HTTP Services HTTP server operations
HTTP Client Making HTTP requests
WebSockets Real-time bidirectional communication
File System File I/O and directory watching
Sockets TCP communication
Repositories Data storage and management

Advanced

Chapter Description
Data Pipelines Filter, Map, Reduce for collection processing
Streaming Execution Process large datasets with constant memory
Context-Aware Responses Dynamic response generation
System Commands External command execution

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