APIWEBADMAPP

Platform statusAll monitored systems operational.

All languages

General-purpose language

Vela

Previewv0.4.0

One language for data, systems, and everything between.

Vela is a general-purpose, data-science-first language built entirely from scratch by StretchGroup. It pairs the readability people love in Python with the memory safety and performance of Rust and the statistical fluency of R, in one coherent design. Vela runs natively, compiles to WebAssembly, and embeds inside other applications, so the same program can power a notebook, a service, and a browser.

Role: Data & systems language

Dethrones: Python, R, and Rust

vela.vela

Overview

Vela is a general-purpose, statically-checked language designed data-science-first. It blends three influences on purpose: the clean, indentation-light readability of Python; the ownership-aware safety and ahead-of-time performance of Rust; and the vectorised, statistics-native ergonomics of R. The result is a single language you can use for an exploratory analysis, the production service that ships it, and the embedded logic inside a larger product.

  • Statically typed with inference - annotations where they help, not everywhere.
  • Tiered memory: automatic reference counting by default, with opt-in ownership for hot paths.
  • Targets native binaries, WebAssembly, and an embeddable interpreter.
  • A Rust-built CLI/interpreter is the reference implementation.

Install

Vela 0.4.0 is released as both a Linux x86_64 binary and a source tarball. Download either artifact from the official artifact links and run the binary to confirm the version.

vela / install
curl -fsSL https://developers.stretchgroup.ca/downloads/vela/vela-v0.4.0-linux-x86_64 -o vela-v0.4.0-linux-x86_64chmod +x vela-v0.4.0-linux-x86_64 && ./vela-v0.4.0-linux-x86_64 --version

Quick start

Create a file ending in `.vela`, then run it with the CLI. Vela reads top-to-bottom like a script but type-checks the whole program before running, so mistakes surface before your data does.

vela / quick-start
# hello.velafn main() {  let name = "world"  print("hello, ${name}")   # data is first-class  let xs = [4.0, 8.0, 15.0, 16.0, 23.0, 42.0]  print("mean = ${xs.sum() / xs.len()}")}

Key concepts

A few ideas carry most of Vela's design. Records and enums model your domain; `match` (with guards) handles every case exhaustively; and `Option`/`Result` plus the `?` operator make missing-and-failing values explicit instead of crashing. Dataframes and vectorised operations are part of the language, not a bolted-on library.

  • Records & enums for typed domain modelling.
  • Exhaustive `match` with guards - the compiler checks you handled every case.
  • `Option` / `Result` + `?` for safe, explicit error and null handling.
  • Vectorised numerics and first-class dataframes for analysis.
  • Higher-order functions, closures, and multi-argument lambdas.

Download

Install from the registry, or pull a versioned package hosted directly by StretchGroup.

Install

Download interpretercurl -fsSL https://developers.stretchgroup.ca/downloads/vela/vela-v0.4.0-linux-x86_64 -o vela-v0.4.0-linux-x86_64
Bootstrapchmod +x vela-v0.4.0-linux-x86_64 && ./vela-v0.4.0-linux-x86_64 --version
Download sourcecurl -fsSL https://developers.stretchgroup.ca/downloads/vela/vela-0.4.0-src.tar.gz -o vela-0.4.0-src.tar.gz

Looking for everything in one place? See the downloads index.