drang
Your agents write the glue. You can read it.
Reads like Ruby, thinks like Perl, runs like Go — a small, parallel scripting language for text, glue, and orchestration.
drang — Dutch/German for drive, urge, momentum.
# square the evens and sum them $xs := [1, 2, 3, 4, 5, 6] $xs |> filter(|$x| $x % 2 == 0) |> map(|$x| $x * $x) |> reduce(0, |$a, $b| $a + $b) # 56
Why drang
Effortless parallelism
Change map to pmap and the work runs lock-free across every
core — no GIL. Quick for an interpreter, and it scales when you need it.
Errors are values
Failures are ordinary values: ? propagates, // recovers. A
dropped error is a deliberate choice, not an accident.
Perl's soul, not its warts
One $ sigil, string interpolation and heredocs, qr// regex
literals, and |> pipelines.
Glue built in
run / capture / pipe with timeouts and
process-tree kill, line streaming, channels, and a minimal HTTP client.
Batteries, curated
Modules, frozen immutability, ~120 builtins and a prelude, JSON & CSV, dates, hashing. Broad, not a kitchen sink.
One static binary
No runtime, no dependencies, fast startup. Format with drang fmt, test
with drang test, ship with drang build.
Install
Grab a prebuilt binary for macOS, Linux, or Windows from the latest release — or build from source with Go:
go build -o drang ./cmd/drang