Skip to content

Repository files navigation

Flint

Flint

Flint is an experimental project that explores what an assembly-like language could look like when used to build HTTP APIs and server-rendered UI pages.

The language runs on a tiny register-based virtual machine. Route handlers are written in .fl files, compiled to bytecode, and served through the Rust HTTP runtime. Server-rendered UI pages live in .flint.ui files and compile into ordinary Flint route modules.

Links

Example

section .route
    GET "/hello" -> say_hello

section .text
say_hello:
    mov r0, "Hello from Flint!"
    ncall http.text, r0
    ret

A styled UI page can be written without handwritten HTML:

section .route
    GET "/"

section .render
    window "Dashboard"
        text "A server-rendered page from Flint UI."
        card "Actions"
            btn "Open API", "/hello"
        end
    end

Workspace

crates/flint      Rust library: VM, compiler, stdlib, HTTP runtime
crates/flint-cli  CLI binary: flint new, flint serve, flint build
docs              VitePress documentation
extensions/vscode VS Code language extension

Commands

cargo test
cargo run --bin flint -- new my-app
cargo run --bin flint -- serve my-app
pnpm docs:build

Status

This is a research and learning project. The goal is to make the runtime, bytecode, HTTP layer, and page generation easy to inspect and evolve.

About

Experimental register-based VM and assembly-like language for building HTTP APIs and server-rendered web systems

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages