In that sense, Pack is a hybrid.
It creates Contents (packages of raw data) from the input, but unlike tar, it does not compress all files as a whole, and unlike zip, it does not process each file one by one.
Depending on the input, each piece of content can have a chunk, a whole, or many of the input files. And after that, they can be compressed, if they are worth it.
For now, each content size is chosen dynamically; most of the time, 8 MB; This helps Pack access a file or a part of it, by reading and decompressing only an small part. Similar to pages in file systems, but bigger, and compressed. And luckily, the SQLite file format enables this random access, fast and safe.
It makes updating a file or adding items easier by only needing to touch what is needed, not the whole Pack file.
This is mandatory, as Pack's locking mechanism will let users access a file without forcing them to decrypt and decompress all the files, reducing resource use, preventing temp files, and increasing speed and security.