mix exograph.index.hex (exograph v0.6.0)

Copy Markdown View Source

Downloads and indexes Hex.pm packages into a Postgres-backed Exograph index.

mix exograph.index.hex
mix exograph.index.hex --mode top --limit 5000
mix exograph.index.hex --mode latest --concurrency 8
mix exograph.index.hex --mode latest --web --port 4200

Packages are downloaded as tarballs, extracted to a temp directory, indexed, then cleaned up. Peak disk usage is proportional to --concurrency, not the total number of packages.

Already-indexed packages (by name+version) are skipped by default. Use --force to re-index everything.

Options

  • --mode - latest (default), top, or all
  • --limit - max packages to index
  • --prefix - table prefix (default: hex)
  • --concurrency - parallel download+index workers (default: 4)
  • --min-mass - minimum fragment AST mass (default: 8)
  • --reach - include Reach call graph extraction
  • --force - re-index already-indexed packages
  • --bm25 - create ParadeDB BM25 indexes
  • --mirror - tarball mirror URL (repeatable)
  • --cache-tarballs - directory to cache downloaded tarballs
  • --database-url - Postgres URL (or set EXOGRAPH_DATABASE_URL)
  • --repo - Ecto repo module (uses built-in if omitted)
  • --timeout - per-package timeout in seconds (default: 300)
  • --web - start web UI with live progress dashboard
  • --port - web UI port (default: 4200, requires --web)