About Pascal:
It makes me happy. It looks clean and pseudocode-like. It helps readers from around the world with different languages understand. I am happy that Pack made people curious about this old but great goodie.
Speed, Here are some reasons:
- Pack does all the steps of pack or unpack (read, check, compress/decompress and write) together and this weaving helped achieve this speed and random access. It is by far the fastest speed I get to see reading or writing random files from file systems, as fast or faster than asynchronous read operations or OVERLAPPED on Windows. To a point, it is limited to file system. For example, on NTFS, Pack can pack Linux code base in around 1.3 s; similar is done on ext4 in 0.96 s.
- It is based on a heavily optimized code base, standard library, and the FreePascal compiler, which produces great binary.
- Multi core design: even mobiles have multi-core CPUs these days. Choosing threads based on the content and machine, it does not eat your machine.
- Speed-configured SQLite. SQLite is much faster than most people think it is.
- Configured the already rapid Zstandard.
In summary, standing on the shoulders of giants while trying hard to improve reliability, speed and user experience is a sign of respect for them.
I know many people including myself are curious on why you wrote this in Pascal?
Also, what are the main reasons Pack is faster than the tools you compare Pack with?