pack.ac
Open in
urlscan Pro
198.54.115.8
Public Scan
URL:
https://pack.ac/
Submission: On July 16 via api from US — Scanned from DE
Submission: On July 16 via api from US — Scanned from DE
Form analysis
1 forms found in the DOMPOST /index.php
<form class="subscribe" action="/index.php" method="POST">
<div class="form-control"><input name="email" type="email" placeholder="Get update in your inbox" required="" title="Please provide a valid email"><button type="submit">✓</button></div>
</form>
Text Content
The most efficient way to pack files. Highest compression-to-time ratio. Designed for modern hardware. Database-Level resiliency. Easy to use, light, and small. Download Pack for Windows ↓ Download Pack for Linux ↓ Download Pack for macOs ↓ Other downloads VERSION 2 (LATEST VERSION) Windows64bit ↓Linux64bit ↓ New * List: Use --list to explore a Pack file, and it will print a list of all files. * Partial Unpack: To unpack a specific file or folder in a Pack file, use --include. * Pro notes: * To list an specific folder, you can use --include together with --list. * You can use multiple --include to unpack or list in one go. It will use an optimized algorithm to process each item just once. * The --include command also accepts an item's ID. Get ID from --list. Improved * Pack is now even faster, at near 5% in Pack and Unpack. * A bug that caused invalid files in some systems, is now fixed. * Handling of invalid and duplicate file names in export has improved significantly. * Many minor changes to improve the readability of the code. Examples of new features: Get a list of all itemspack -i ./test.pack --list Unpack a file inside a Pack filepack -i ./test.pack --include=/a/file.txt Use and ID instead of path for includepack -i ./test.pack --include=5 Unpack multiple files and folderspack -i ./test.pack --include=/a/file.txt --include=/a/folder/ Notes Pack ✓ PACK INTRODUCTION Pack is a container format that can support files and raw data, and it is made to be safe, fast, and reliable for years to come. It is designed to be the most efficient way to pack any amount of data and improve the user experience to fit the future. The author proposes a fresh solution based on well-formed standards to significantly improve performance while improving features like random access, update, security, and user experience. It is free to use, and the source code is available with a permissive license, ensuring freedom from patent concerns. You can get the latest version from https://pack.ac/ . REASON It's been decades since any new proper work was done for a container format, and the author felt that there was a need for a new design considering new generations of hardware and advancements in algorithms. Most popular solutions like Zip, gzip, tar, RAR, or 7-Zip are near or more than three decades old. While holding value for such a long time (in the computer world) is testimony to their greatness, the work is far from done. To demonstrate that, here are some numbers comparing the output size and speed as CompressedSpeed. Packing a copy of a folder containing more than 81K files and around 1.25 GB on a test machine:ZIP: 253 MB, 146 s = 1 tar.gz: 214 MB, 28.5 s ====== 6 tar: 1345 MB, 4.7 s ====== 6 RAR: 235 MB, 27.5 s ====== 6 7z: 135 MB, 54.2 s ===== 5 Pack: 194 MB, 1.3 s ================================================================================================================================================= 145 Unpack speed, random access, memory use, and other factors are also improved similarly. Pack is smart and configures itself as needed; there are not many dials to play with. Beside numbers, the Pack format is based on the universal and arguably one of the most safe and stable file formats, SQLite3, and compression is based on Zstandard, the leading standard algorithm in the field. These design choices promise reliable storage, transactional updates, exceptional speed, low resource usage, smartness, and simplicity. FUTURE In the near future, stabilizing will be the most important task. Locking and encryption, graphical interface, OS integration, and development tools and libraries are planned and under development. Builds for many more platforms will be available over time. For the time being, you are encouraged to try Pack for yourself and share results and notes with others, including author by emailing, o at pack.ac. If you want to know more about design, plans, and other notes, you can check out Notes. You can find the source code for a deeper study at Source. CONCLUSION The field of data compression has been well-lit with great work in the past decades, and Pack tries to continue this path as the next step and proposes the next universal choice in the field. The author is aware of unfathomable speedups and design decisions. Readers are welcome to test, read the code, and engage in discussions. Everyone is encouraged to use Pack to have a more efficient solution and build on it for an improved future. -------------------------------------------------------------------------------- A gift to anyone passionate about data, especially Phil Katz, D. Richard Hipp, Yann Collet, and me. FOOTNOTES * CompressedSpeed = (InputSize / OutputSize) * (InputSize / Speed). Materialized compression speed. * Linux source code repository at the time of writing. * Development machine with a two-year-old CPU and NVMe disk, using Windows with the NTFS file system. The differences are even greater on Linux using ext4. Value holds on an old HDD and one-core CPU. * All corresponding official programs were used in an out-of-the-box configuration at the time of writing in a warm state. * Numbers are for demonstration; they will vary for different inputs and machines; test for yourself. Documentation Source Media Kit GitHub Legal Apache 2.0 license Pack by O Legal LEGAL PRIVACY Pack is made to be private. No personal information is needed or gathered while using Pack. No private metadata will be written to the pack file. Any visit or check with the server, website, or updates is done anonymously and with no log of personal data or IP address. Any use of encryption algorithms is done according to industry standards. LICENSE Pack is free, and the source code is available for free too. But as many need the peace of mind to see a license, Pack is licensed under the Apache 2.0 license. In summary, study, change, share, and use Pack as you wish, but do not ask for liability or warranty, do not change the license, and certainly do not consider yourself the owner; it is to be free for everyone. Read the license text for more information. Other works used in the building of Pack are below; visit them to find the source code and license. * FreePascal * Lazarus * SCL * SQLite * Zstandard Support Documentation DOCUMENTATION QUICK MODE You can use CLI program very easily in Quick Mode. For packing some filespack ./test/ And for unpackingpack ./test.pack NORMAL MODE Pack has many other abilities that you can try using Normal Mode. Use pack aspack [Options] Options are : --input, -i set the input path from the system; it can be a file or a folder. If extension is .pack, it will be unpacked; otherwise, it will be packed. --output, -o Set the output path from the system; it can be a file or a folder. If not set, a file name is chosen based on the input name. If the chosen name exists, an incremental number will be added to the name. --pack Enforces packing even for a .pack file. --list, -l List all items in a pack file. --include Specifying a file or folder in a Pack file to unpack or list. It can be set to a path or an ID. It is allowed to be used more than once. It will use an optimized algorithm to process each item just once. --overwrite, -w Overwrite the output if it exists. --press=[hard] Ask for a harder press, using more time to save more storage. It is useful for cases where you pack once and unpack several times. --log=[no, debug] Logging more information on the active task, including time. Or turn logging off. --help Prints a quick help and list of parameters. Source SOURCE Get the latest source form here. It is also available at GitHub. It is written in the Pascal language, a well-stabilized standard language with compatibility promises for decades. Using the FreePascal compiler and the Lazarus IDE for free and easy development. The code is written to be seen as pseudocode. In place of need, comments are written to help. To compile the code, here are the steps to follow: * Get the latest FreePascal and Lazarus from https://gitlab.com/freepascal.org * Get the standard library used for development from https://github.com/SCLOrganization Using Lazarus: * Open SCL packages SCL.lpk and SCLLibraries.lpk * Open Pack packages PackPackage.lpk and PackDraft0Package.lpk * Open Pack project CLIProject.lpi * Build