┌─ ~/projects/gorancid ──────────────────────────────┐
gorancid v0.4.4 ● active

What

Go rewrite of RANCID — Really Awesome New Cisco confIg Differ. A drop-in replacement that collects network device configurations, stores diffs in git, and emails changes.

Why

RANCID is written in Perl, Tcl/Expect, and C. It works, but the stack is brittle and hard to extend. Gorancid replaces the orchestration layer in Go while keeping full compatibility with existing configs, credentials, and device type definitions.

Binaries

  • clogin — Interactive device login from router.db
  • rancid — Per-device collector using pure Go parsers
  • rancid-cvs — Git repo and group directory setup
  • control-rancid — Per-group collection orchestrator
  • rancid-run — Cron entry point, iterates groups
  • rancid-ui — Fleet table, config browser, last diff viewer

Architecture

All logic in pkg/ — config parsers, device type registry, git wrapper, parallel worker pool (bounded by PAR_COUNT), SSH/Telnet collector, email notifier. CLI binaries in cmd/ are thin wrappers.

Status

Phase 4 complete. All collection runs in-process over SSH or Telnet with zero Expect or Tcl/Perl dependency.

→ github.com/jskoetsier/gorancid

← back to ~/

└──────────────────────────────────────────────────────────┘