Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Быстрый старт

Установка

Быстрее всего попробовать язык, ничего не устанавливая: playground запускает настоящий компилятор прямо в браузере.

Бинарник:

cargo install aura-lang

Либо готовая сборка со страницы Releases — Linux (gnu и статический musl), macOS (Intel и Apple silicon), Windows, к каждой .sha256. На x86_64 Linux предпочтительна musl-сборка: она статическая, порога glibc нет.

В GitHub Actions:

- uses: aura-config/setup-aura@v1
- run: aura check deploy.aura --strict

Сборка из исходников:

git clone https://github.com/aura-config/aura-lang && cd aura-lang
cargo build --release
# бинарник: target/release/aura

Первый манифест

Создайте hello.aura:

app_name = "hello"
port     = 8080

service:
  name:     app_name
  url:      "http://localhost:#{port}"
  replicas: 2
end
$ aura eval hello.aura
{
  "service": {
    "name": "hello",
    "url": "http://localhost:8080",
    "replicas": 2
  }
}

Обратите внимание: app_name и port (объявленные через =) в JSON не попали — это приватные вычисления. В вывод идут только свойства (имя:) и блоки. Подробнее — в следующей главе.

Три команды, которые нужны каждый день

aura eval app.aura            # вычислить → JSON в stdout
aura check app.aura --strict  # проверить без вычисления (линтер; для CI)
aura fmt app.aura             # канонизировать отступы

Структура без боли

Aura не использует значимые отступы (травмы YAML лечатся здесь). Структуру задают переносы строк и явное end:

server:
  http:
    port: 8080
    timeouts:
      read: "30s".parse_duration()
    end
  end
end

Отступы — только для людей; aura fmt приводит их к канону автоматически и гарантированно не меняет смысл (поток токенов до/после идентичен).