Skip to content
Flecha logo

Build close to the metal. Keep intent in view.

Flecha is an early-stage systems language pursuing memory safety, native performance, and direct machine access through a language substantially simpler than C++ or Rust.
v0.3.0Latest tagged toolchain
4 targetsQualified release archives
Native targetsLLVM-backed compilation
Early stageAPIs and syntax can still evolve
Testable by design

Generics, modules, and assertions in one native workflow.

Flecha tests are ordinary typed code with first-class test declarations. Import reusable modules, exercise generic algorithms over slices, and verify results with the standard assertion library.

Run the suite with flecha test and get the same compiler checks as production code.

algorithms_test.fl
module algorithms_test;
@imports
:: root::containers::algorithms
:: lib::std::tests::testing
:: lib::std::tests::asserts;
test index_of_finds_the_first_match(&testing::UnitTest t) {
[5]i32 values = [10, 20, 30, 20, 40];
index, found := algorithms::index_of<i32>(values[:], 20);
asserts::is_true(t, found, "index_of finds a present value");
usize expected = 1;
asserts::equal<usize>(
t, &expected, &index, "index_of returns the first match"
);
}
The design promise

Simple language. Safe systems. Native performance.

Flecha aims to remain substantially simpler than C++ and Rust without giving up memory safety or low-level control. A small set of mechanisms—explicit ownership, checked references and slices, deterministic cleanup, error values, and narrow unsafe boundaries—should compose into powerful libraries instead of requiring a new language feature for every domain.

&T
Explicit memory

Checked references, slices, move-only callable values, explicit closure captures, raw allocation in unsafe code, and ownership contracts.

std
Application-capable library

Collections, text, bytes, encoding, hashing, cryptography, files, networking, processes, time, randomness, and tests ship with the toolchain.

→
Native packages

Longbow builds native programs, resolves source packages, verifies immutable checksums, and records reproducible dependency graphs.

Toward 1.0—and beyond

A language capable of carrying its own implementation.

Flecha is moving toward a self-hosted compiler written in Flecha, with native performance in the same class as an equivalent C++ implementation. Data formats, networking, async I/O, metaprogramming, cryptography, and demanding native integrations will help prove the language along the way.

This is a direction, not a frozen checklist. The destination is clear, while the language remains free to discover better ways to reach it.

Read the Flecha 1.0 vision
Choose a path

From first build to language internals.

Start with a working compiler, learn the core syntax, then go as deep as the implementation notes and specification.