Skip to content

nhat-tien/angi

Repository files navigation

Angi

Example

{
    port = 3030;
    routes = [
       {
           path = "/";
           handler = () => "Hello world";
       },
       {
           path = "/<id>";
           handler = (id: int) => "Hello {id}";
       }
    ]
}

Build from source

cargo build -p angi --release

Docs

Documents

Motivation

  • Nix-for-be
  • A scripting language lua-like, simple, fast, static-typed.
  • A generate tool that generate backend-service code (transpile, meta programming?).
  • Declarative backend language (or framework???)
  • I love the simplicity of lua, but I want static-type.
  • I want write a server with minimal effort. Everything is built-in, hyper extendable.

Architecture

Flow

flowchart LR
 subgraph s1["Compiler"]
    direction LR
        n4["Parser/Code gen"]
        n8[".bytecode"]
  end
 subgraph s2["Angi"]
        s1
        n9["AVM (Angi Virtual Machine)"]
        n10["Server"]
        n11["Pre-built binary"]
        n12["Inject .bytecode to binary"]
  end
    A[".ag file"] --> s1
    n4 --> n8
    n9 --> n11
    n10 --> n11
    n11 --> n12
    s1 --> n12
    n12 --> n1["binary_output (production ready)"]
Loading

Acknowledgement

About

An experimental language for building declarative backends

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages