← back to projects

go-usb-audio-mapper

The Go rewrite of usb-audio-mapper

lang Go license MIT view on GitHub →

Highlights

  • Static Go binary with no shell dependencies
  • Same udev-rule output format as the shell version
  • Drop-in replacement for environments that prefer compiled tools over shell

What it does

The Go port of usb-audio-mapper. Same job: inspect attached USB audio devices and generate the udev rules that pin each one to a stable, human-readable name. Same output format, byte for byte, so switching between the shell and Go versions doesn’t rename anyone’s existing devices.

Why this version exists

Some deployment environments actively prefer, or require, a compiled binary over a shell script. Air-gapped industrial deployments, locked-down Linux distributions, container images where you’d rather not ship a full shell, or teams that want a single artifact to check into configuration management and forget about. go-usb-audio-mapper is the same tool, packaged for those environments.

The shell version remains the canonical implementation and the easiest one to audit quickly. The Go version is what you reach for when the distribution model matters more than auditability.