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
01
Start here
→02Getting started
Core language
→03Language fundamentals
Data model
→04Entities & data types
Application surface
→05APIs, auth & access
Compilation
→06Compiler & IR
Delivery intent
→Build & deployment
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.