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

Form analysis 1 forms found in the DOM

POST /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