Skip to content
Flecha logo

Build close to the metal. Keep intent in view.

Flecha is an early-stage, statically typed systems language for predictable execution, explicit memory operations, and direct access to native targets.
v0.1.2Latest tagged release
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"
);
}
Built for clarity

Direct control, backed by compiler checks.

&T
Explicit memory

Checked references, slices, raw allocation in unsafe code, ownership contracts, and definite-assignment analysis.

!?
Strong diagnostics

A tokenizer, parser, semantic analyzer, and lowering pipeline designed to surface source-level problems clearly.

→
Native by default

Emit LLVM IR, objects, or host-native executables. The runtime and standard library ship with release archives.

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.