RAIQL DOCUMENTATION

Requirements, expressed as code.

RAIQL is a declarative language for describing software systems in a form that remains readable to people while being structured enough for deterministic compilation.

Current language version: 0.2The documentation below describes syntax implemented by the RAIQL compiler included with this release.

Start with a complete program

A RAIQL specification typically declares an application, selects its stack, defines domain entities, exposes behavior, declares security intent and ends with delivery actions.

task-board.raiql
CREATE APPLICATION "Task Board";
TYPE WEB;

USE STACK
  FRONTEND NEXTJS,
  BACKEND NESTJS,
  DATABASE POSTGRESQL;

CREATE ENTITY Task (
  id UUID PRIMARY,
  title STRING REQUIRED,
  completed BOOLEAN REQUIRED
);

CREATE CRUD Task;
CREATE API Task;
ADD AUTHENTICATION JWT;
GENERATE TESTS;
BUILD;

Documentation map

Design principles

Explicit

Important application intent should exist in source rather than be inferred repeatedly.

Validatable

The compiler checks syntax and cross-references before generation begins.

Portable

The IR separates application intent from any one framework or generator.

Reviewable

A RAIQL file is compact enough to review alongside source code and architecture changes.