Build Loading...

An Experimental
Hybrid-Typed Language.

Built on LLVM. Flow-Wing combines a strict static core with supported dynamic primitives.
bring vortex

/; Server Setup
var app: vortex::Server = new vortex::Server()
var port = 3000

app.listen(port)
println("Server running at http://127.0.0.1:" + port)

/; Route: Home Page (GET)
while true {
    var req: vortex::Request, res: vortex::Response = app.accept()

    if req.getMethod() == "GET" && req.getPath() == "/" {
        res.status(200)
           .header("Content-Type", "text/html")
           .send("<h1>Welcome to Flow-Wing</h1>")
    }
}
This is a sandbox, not an editor. It compiles and runs your code, but there is no language server here. No red squiggles as you type, no hover types, no go-to-definition and no completion. Errors only appear after you press Run.
Get the VS Code extension
main.fg
[Output will appear here]

Get the Flow-Wing SDK

Artifacts include the AOT compiler, JIT tool, and standard library.

Or install from a package manager

bash - macOS

          

Apple Silicon only. The tap has no Intel build, so on an Intel Mac download the SDK above or build from source.

Hybrid Type System

Use strict type and class definitions for core architecture, or utilize supported dyn primitives for flexible variable assignments and scripting.

LLVM Backend

Compiles directly to optimized machine code using the LLVM infrastructure. The toolchain produces native binaries for macOS, Windows, and Linux without requiring a heavy runtime or interpreter.

Standard Library

Built-in modules cover core requirements including file I/O, JSON serialization, and system utilities. The SDK also includes integrated bindings for Raylib graphics and the Vortex HTTP framework.

Concurrency

Run thousands of tasks on a single thread with no callbacks, no async keywords, and no locks. Each task keeps its own stack, so code that waits on a timer, a file, or a network socket still reads straight down the page. Waiting tasks step aside and let the others run.

Automatic Memory

Memory is managed for you. There is no manual free, no ownership model to learn, and no lifetime annotations to satisfy. A precise collector tracks exactly what is still reachable and reclaims everything else.