AT-1 Century

The archive that outlives its software

A .at1century file carries, in one blob: an English description of its own format, the decoder as source in a tiny procedural language, a SHA-256 of the original, and the compressed payload. It reconstructs byte-exact using only what it carries, the embedded decoder run in a bare namespace, no imports, nothing from AT-1, so it is still decodable when no AT-1 software, or even Python, survives. Any implementer can rewrite the decoder from the paragraph alone.

1,494 B
total self-description: English spec + decoder source
no software
reconstructs from the embedded decoder alone, bare namespace
byte-exact
native and embedded decoders agree; SHA-256 verified
2126-ready
rewritable by any implementer from the English paragraph

Pack it, and it explains itself

at1 century pack records.csv -o records.at1century
#   1,142,180 -> 316,069 bytes (3.61x); self-description
#   overhead 1,494 bytes
at1 century spec   records.at1century   # read the rebuild instructions
at1 century verify records.at1century   # native == embedded, SHA-256 ok
at1 century unpack records.at1century -o out.csv --self-decode
#   recovered via the embedded decoder alone

Self-describing

The English spec is inside the file. The decoder is source, not a binary, auditable, portable, and rewritable by hand from the spec.

Two decoders, one answer

A fast native decoder for daily use and the embedded decoder for the guarantee, both must produce byte-identical output, checked against the SHA-256.

Honest scope

The embedded decoder runs in a bare namespace (four safe builtins, no imports). It’s an integrity + longevity guarantee, not confidentiality; open only archives you trust.

Billed per GB packed, first 10 GB/month free. See pricing.

The format you cannot read is the one you did not keep

Long-term archives usually fail in a specific way. The medium survives, the bytes survive, and the software that understood them does not. What is left is a file nobody can open and a vendor who no longer exists, which is the same outcome as having lost it.

So the file explains itself. It carries a description of its own layout in plain English, alongside a decoder small enough that a competent programmer could reimplement it from the description if the decoder itself would not run. The archive does not depend on us being here, which is the only version of a hundred year guarantee worth making.

What this does not solve

It does not preserve the medium. A self-describing file on a disk nobody powers on is still lost, and no format can fix that. It also cannot make sense of data whose meaning lived outside the file, in a schema document or somebody's head, so the archive is only as interpretable as what you chose to put in it. Both of those remain your problem, and we would rather write that here than let a phrase like future proof do the work.