latch-lang-0.1.0 is not a library.
Write .lt scripts to automate file operations, run shell commands, make HTTP calls, and orchestrate parallel tasks — all in a clean, readable syntax with zero boilerplate.
# deploy.lt
:= .
:=
in =4
0
Install
From crates.io (recommended)
From source
Pre-built binaries
Download from Releases and add to your PATH.
After install, verify:
# → latch v0.1.0
Quick Start
Create hello.lt:
:=
:=
Run it:
Features
| Feature | Example |
|---|---|
| Variables | name := "latch" |
| Type annotations | port: int := 8080 |
| String interpolation | "Hello ${name}!" |
| Lists & Maps | [1, 2, 3], {"key": "val"} |
| Functions | fn greet(name) { return "hi ${name}" } |
| If / Else | if x > 0 { ... } else { ... } |
| For loops | for item in list { ... } |
| Parallel | parallel f in files workers=4 { ... } |
| Error handling | try { ... } catch e { ... } |
| Fallback values | data := fs.read("x") or "default" |
| Exit codes | stop 0 / stop 1 |
| File I/O | fs.read, fs.write, fs.exists, fs.glob |
| Shell commands | proc.exec("cmd"), proc.pipe([...]) |
| HTTP | http.get(url), http.post(url, body) |
| Time | time.now(), time.sleep(ms) |
| AI | ai.ask(prompt), ai.summarize(text) |
| REPL | latch repl |
CLI
Standard Library
Built-in Functions
# Print to stdout
# → 3
# → "42"
# → 7
# → 3.14
# → "string"
# → [1, 2, 3]
# → ["a"]
# → [1]
# → [0, 1, 2, 3, 4]
# → ["a", "b", "c"]
# → "hi"
# → true
# → "f00"
Modules
# fs — File System
:=
:=
# proc — Processes
:=
:=
# http — HTTP Client
:=
:=
# Returns: {"body": "...", "status": 200}
# time — Time
:= # RFC 3339 timestamp
# Sleep 500ms
# ai — AI (requires LATCH_AI_KEY env var)
:=
:=
Error Messages
Latch produces structured, actionable errors:
[latch] Semantic Error
file: deploy.lt
line: 12 col: 5
→ result := undeclared_var + 1
reason: Undefined variable 'undeclared_var'
hint: Declare the variable first with ':='
Parallel Execution
Parallel blocks run all workers to completion. If any worker fails, the first error is returned after every worker has finished — no silent partial failures.
:=
in =4
Use as CI Exit Code
:=
0
Examples
See the examples/ directory:
hello.lt— Feature showcase
Full Reference
See docs/stdlib.md for the complete standard library reference.
License
MIT — see LICENSE