AeroFTP compressed containers, measured: encryption on and off, format by format #406
axpnet
started this conversation in
Design Threads
Replies: 2 comments 2 replies
-
Beta Was this translation helpful? Give feedback.
0 replies
-
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment


















Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
This is the home thread for one question I keep coming back to: how do AeroFTP's compressed containers actually behave, with and without encryption, across the formats I ship. Rather than assert, I want to measure, format by format, on the same machine, the same corpora, the same harness, and keep the results here so they are comparable over time.
Scope is every container AeroFTP can create or open today. Encrypted first-party: the
.aerovaultcontainer (v2 and the v3/v4 track, AES-256 with an Argon2id KDF). Plaintext first-party:.aerozip(zstd with integrity checks and Reed-Solomon recovery parity, not confidentiality). General archives:zipand7z(both with AES-256 on create and extract, and 7z also with header encryption where filenames are hidden), plustar,tar.gz,tar.xz,tar.bz2, andraron the extract side. Encrypted overlays and vaults sit alongside: Cryptomator, rclone crypt, and the native AeroCrypt overlay.One distinction runs through all of this. The primary axis is compression, with or without encryption, where the final size and the ratio are the headline number: that is what the charts below measure, and they are results for the compressed formats. Separate from that are the containers that do not really compress, the encryption-only view of a vault and Cryptomator (which is not even a single file), where compression is not the point and the only things worth comparing are the final weight and the cost of encryption itself. I keep the two lenses apart on purpose, so a store-and-encrypt container is never scored as if it were a compressor.
Two companion threads feed this one. The founding benchmark that started it is the AeroVault comparison in #276, whose data and charts I am migrating here as the baseline. The format-coverage vote, which formats to add next, lives in #365 under the Roadmap label. This thread is the measurement hub the other two point at.
Methodology, so the numbers are trustworthy. Every format is driven through the one AeroFTP CLI, so the comparison is self-consistent: same binary, same clock, same I/O path, timed under
/usr/bin/time -v, three repetitions with the median reported. Every single row is round-trip verified, compress then extract, with the SHA-256 of the recovered file matching the original. Corpora are deterministic and seeded, spanning the honest range from compressible prose and logs to incompressible random bytes, so the picture is not cherry-picked.Founding benchmark (migrated from #276): AeroVault v3 vs zip / 7z / tar
The corpora span the honest range from compressible to incompressible:
Compressed size as a percentage of original, by corpus
text corpus at 32 MiB
The speed vs size tradeoff, with the Pareto frontier
Compress and extract throughput
Peak memory during compress, and time vs input size
What is coming next in this thread
I am refreshing and widening this benchmark to the full roster, encryption on and off, including the plaintext
.aeroziplane and the header-encrypted 7z mode, and adding a level sweep for 7z. That last one matters: the June run noted that 7z ignored the compression level and ran a fixed preset, and that is now fixed, so I want to show the ratio and speed curve the level knob finally produces. New charts for the level sweep and for the pure encryption overhead will land here when the run completes.If you have a format you want measured, or a corpus that reflects your real files better than my seeded ones, say so below and I will fold it into the next run.
Beta Was this translation helpful? Give feedback.
All reactions