Strut
A concise, memory-safe compiled language with native output, explicit ownership, real concurrency and practical systems APIs.
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.
A native language with batteries where they matter.
Use the pieces you need without adopting a framework runtime or application server.
Compile Strut through focused generated C++20 and the host toolchain into normal native executables with no bytecode VM.
Use reference-counted ownership and weak references by default, with raw-pointer access gated behind explicit unsafe code.
Build CLIs, HTTPS services and data tools with filesystem, process, networking, JSON, SQLite, concurrency and linking support.
Use immutable package resolution, lockfiles and offline caching alongside editor/LSP support and machine-readable compiler metadata.
Write Strut. Ship a native binary.
The language keeps the path from source to executable visible.
- 01
Write a focused CLI, native application or service using Strut's familiar syntax and standard library.
- 02
Compile locally; Strut parses, resolves and type-checks the program, selects the runtime pieces it needs and generates focused C++20.
- 03
Add packages where useful through immutable commits, SHA-256 verification, lockfiles and the offline cache.
- 04
Deploy the resulting native executable directly, or link/embed external native libraries where the application needs them.
Connections that support real development work.
Strut remains useful on its own; the surrounding Gantry projects can help where their jobs naturally overlap.
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 →Warden
Warden can host Strut repositories, terminals and build/test workflows when native development needs to happen remotely or across a team.
Explore Warden →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 →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 →Where Strut earns its place.
Build standalone CLIs and native programs with a concise language and ordinary executable output.
Combine HTTP, TLS, JSON, SQLite, checked errors and concurrency in a native service without starting from a web framework.
Use stable diagnostics, inspection commands and authoritative API metadata in workflows where coding agents need exact compiler context.
Explore Strut.
Installation, language documentation, examples, implementation status and release details live on the Strut website.
