Democratising systems programming
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Aura is a compiled, statically typed programming language for reliable software. It pairs Python-inspired syntax with deterministic ownership, structured concurrency, typed failure, and native executables. It has no garbage collector.
def scale(values: mut list[int64], factor: int64):
for value in mut values:
value *= factor
def total(values: list[int64]) -> int64:
mut sum = 0
for value in values:
sum += value
return sum
mut scores = [10, 20, 30]
scale(scores, 3)
print(f"scores: {scores}")
print(f"total: {total(scores)}")
Save this as scores.au and run it with aura run scores.au. It prints
scores: [30, 60, 90] and total: 180. The signatures state what each
function does to its argument: scale asks for mut access, and total only
reads. The compiler enforces both.
Install the Aura 0.9 technical preview on Linux x64, macOS x64, or macOS arm64:
curl -fsSL https://johnolafenwa.github.io/Aura/install.sh | sh
To upgrade the compiler and bundled runtime of an existing install, run:
aura upgrade
Step-by-step guides cover macOS, Linux, and Windows through WSL 2. The VS Code guide covers Marketplace, Open VSX, VSIX, and WSL remote installation. SUPPORTED_PLATFORMS.md lists supported hosts and pinned tools.
Aura 0.9 targets applications for agents, ML infrastructure, and the control planes around models. Before a program runs, the compiler checks types, access, mutation, ownership transfer, resource cleanup, and task boundaries.
The long-term goal is a general-purpose systems language for every kind of software: applications, services, databases, language runtimes, embedded software, operating systems, and device drivers. Freestanding targets, low-level memory facilities, hardware interfaces, and the platform controls that scope needs are not implemented yet. Why Aura explains the project direction.
aura command,
backend, and output format.| Path | Contents |
|---|---|
crates/ | Rust compiler, runtime, and CLI |
tools/ | Editor integrations and other developer tools |
package.json | npm workspace manifest for the repository's tools |
examples/ | Categorized sample Aura programs |
tutorials/ | Markdown tutorials for the implemented language |
docs/ | VitePress book, language proposal, and supporting documents |
architecture_docs/ | Architecture guides and component deep dives for the current implementation |
work/ | Task board and implementation notes |
Each component has its own README:
crates/aura-core: semantic types, diagnostics, and integer helpers
shared by the compiler and the native runtime.crates/aura-runtime: the native runtime that executables link, with
runtime values, the scheduler, host builtins, codecs, and FFI.tools/vscode-aura: the VS Code extension for syntax highlighting and the
language client.tools/aura-language-server: the Aura Language Server Protocol
implementation.CONTRIBUTING.md covers the test-first workflow, the local gate, and the development commands. The testing strategy explains how the repository is tested. The architecture guide describes how the implementation fits together. Report vulnerabilities as described in SECURITY.md.
Install the extension from the Marketplace or Open VSX as the
VS Code guide describes.
The extension starts the compiler's aura lsp service, so aura must be on
PATH, or AURA_LSP_AURA_PATH must name it. To build and install the
extension from this checkout, follow
tools/vscode-aura/INSTALL.md.