Parallel

February 22, 2026 · 1 min read
projects

A replacement for GNU parallel written in Go. Started as a learning exercise in Go parallelism, but became a tool I regularly use. Runs a configurable pool of workers through a list of jobs, using only stdlib packages.

Features

  • Configurable workers - defaults to one per CPU, adjustable with -j
  • Command templating - Go templates via -t flag with built-in functions (basename, dirname, noExt, toUpper, etc.)
  • Stdlib only - zero external dependencies
  • Fast - ~10x faster than GNU parallel in benchmarks (2.5s vs 26s running md5sum across the Go source tree)

Example

# MD5 sum of every file in /etc
find /etc -type f | parallel md5sum

# Same thing with only 2 workers
find /etc -type f | parallel -j 2 md5sum

# Copy files up a level using templates
parallel -a ./files.txt -t 'cp {{.Input}} {{.Input | dirname | dirname}}'

Tech Stack

LayerTechnology
LanguageGo (stdlib only)
Concurrencygoroutines + channels
TemplatingGo text/template
Authors
Software Developer
Software developer passionate about building great tools and applications.