/oal

A high-level language for OpenAPI

Primary LanguageRustApache License 2.0Apache-2.0

Build License

The Oxlip API Language

Oxlip is a high-level functional programming language for designing OpenAPI definitions. As an Interface Description Language, it is not general purpose. The motivation is to alleviate the pain of managing OpenAPI in JSON or YAML by hand and at scale. Oxlip defines algebraic abstractions over REST concepts, not too dissimilar to Sass/SCSS over CSS.

There are pros and cons to both API-design-first and OpenAPI generated from implementation. As OpenAPI is better produced or consumed by machines rather than humans, Oxlip tries to help API-design-first teams with better tooling.

Installation

This step requires a local Rust and Cargo installation.

make install

Optional: a VSCode language extension is available for syntax highlighting and IDE capabilities.

Usage

    oal-cli [OPTIONS]

OPTIONS:
    -b, --base <BASE>        The relative URL to a base OpenAPI description
    -c, --conf <CONFIG>      The path to the configuration file
    -h, --help               Print help information
    -m, --main <MAIN>        The relative URL to the main program
    -t, --target <TARGET>    The relative URL to the target OpenAPI description

Compiling the example program

oal-cli --conf examples/oal.toml

Experimental: WebAssembly support

Release to WebAssembly requires the installation of wasm-pack.

make wasm