Host software

The host side of Tapewyrm is five Python packages under packages/. Each is a separate uv project with its own tests, and they depend on each other through editable path sources. This page maps them; each package has its own page.

Package Provides Depends on Page
tapewyrm-archive The on-disk formats (TWRF, TWTI/TWTZ, TWVL), QIC-117 report decoders, the progress protocol. Stdlib only. None tapewyrm-archive
qiclib The QIC formats with no hardware: geometry, merge, Reed-Solomon, header, volume table, QIC-113, QIC-122, cartridge and volume profiles. Stdlib only. tapewyrm-archive qiclib
tapewyrm-cli tw: the device link, the QIC-117 drive layer, drive profiles, dump, the flux/MFM codec, convert, flashing. tapewyrm-archive, qiclib tapewyrm-cli
qicsilver qicsilver: identify, extract, inspect, tar on tape images. tapewyrm-archive, qiclib qicsilver
cinnabar The Qt viewer for captures and images. tapewyrm-archive, qiclib, tapewyrm-cli cinnabar

The dependency graph and the rules that keep the base packages stdlib-only are in the Codebase overview.

Profiles

Two kinds of TOML profile change behaviour without code:

  • Drive profiles (tapewyrm-cli): wake-up sequences and QIC-117 timings for a drive. See tw drive profiles and tapewyrm-cli.
  • Cartridge and volume profiles (qiclib): tape geometry, and how a backup program laid out its volume table and file sets. See Writing a volume profile.

Test a package

just check qiclib qiclib

just host checks every package in dependency order. See Building and testing.