← All projects
Native programming language

Strut

A concise, memory-safe compiled language with native output, explicit ownership, real concurrency and practical systems APIs.

Visit Strut ↗
What it is

Native power without making everyday code ceremonial.

Strut is an experimental compiled language for building native software with familiar syntax, explicit safety and a toolchain designed for both human developers and coding agents. Source is checked and lowered to focused C++20 before the platform toolchain produces an ordinary native executable.

The language makes ownership visible. Safe owning pointers, weak observation and explicit raw-pointer escape hatches are paired with checked errors, threads, atomics, mutexes, channels and async work so low-level control does not require giving up a structured safety model.

Strut also ships the practical surroundings needed for real programs: packages with immutable commits and verification, JSON, SQLite, networking and HTTPS, filesystem and process APIs, linking/FFI, a language server and machine-readable API metadata. The project is still young, so its website keeps implementation status and limitations visible rather than presenting unfinished areas as complete.

What you get

A native language with batteries where they matter.

Use the pieces you need without adopting a framework runtime or application server.

Native C++20 output

Compile Strut through focused generated C++20 and the host toolchain into normal native executables with no bytecode VM.

Explicit memory safety

Use reference-counted ownership and weak references by default, with raw-pointer access gated behind explicit unsafe code.

Systems & service APIs

Build CLIs, HTTPS services and data tools with filesystem, process, networking, JSON, SQLite, concurrency and linking support.

Packages & tooling

Use immutable package resolution, lockfiles and offline caching alongside editor/LSP support and machine-readable compiler metadata.

Typical workflow

Write Strut. Ship a native binary.

The language keeps the path from source to executable visible.

  1. 01

    Write a focused CLI, native application or service using Strut's familiar syntax and standard library.

  2. 02

    Compile locally; Strut parses, resolves and type-checks the program, selects the runtime pieces it needs and generates focused C++20.

  3. 03

    Add packages where useful through immutable commits, SHA-256 verification, lockfiles and the offline cache.

  4. 04

    Deploy the resulting native executable directly, or link/embed external native libraries where the application needs them.

Inside Gantry

Connections that support real development work.

Strut remains useful on its own; the surrounding Gantry projects can help where their jobs naturally overlap.

Works with

Cortex

Strut's compiler diagnostics, machine-readable metadata and ordinary repository workflow make it a natural target for coding-agent sessions in Cortex.

Explore Cortex →
Works with

Warden

Warden can host Strut repositories, terminals and build/test workflows when native development needs to happen remotely or across a team.

Explore Warden →
Works with

Nift

A Nift-generated frontend can stay completely static while talking to a separately deployed Strut HTTP service when a project needs a native backend without coupling the two tools.

Explore Nift →
Access

Local tool, no my.* indirection.

Strut is a compiler, CLI and native toolchain rather than a persistent Gantry web service. There is no running instance to select, so a dedicated my.* launcher would add indirection without solving an access problem.

It still belongs in the Gantry project directory and can be linked from a configurable my.gantry.cv launcher when quick access to the website or documentation is useful.

Why my.* is reserved for running applications →
Good fit

Where Strut earns its place.

Native tools & applications

Build standalone CLIs and native programs with a concise language and ordinary executable output.

Backends & HTTPS services

Combine HTTP, TLS, JSON, SQLite, checked errors and concurrency in a native service without starting from a web framework.

Agent-driven native development

Use stable diagnostics, inspection commands and authoritative API metadata in workflows where coding agents need exact compiler context.

Project website

Explore Strut.

Installation, language documentation, examples, implementation status and release details live on the Strut website.

Open Strut ↗