Simple tool for packing, unpacking, and inspecting archives.
- Go 100%
| cmd/arc | Non-constant format string in call to report. | |
| internal | Update version. | |
| .gitignore | Cleanup. | |
| go.mod | Update Go and dependencies. | |
| go.sum | Update Go and dependencies. | |
| LICENSE | WIP | |
| README.md | Update README. | |
| TODO.md | WIP | |
Archiver
Simple (for now) tool for packing, unpacking, and inspecting archives.
See go.mod for the libraries that do all of the work!
Supported archive types:
- tar
- tar.gz
- tar.s2
- tar.xz
- tar.zst
- zip
Current status:
- Good enough for me.
- Seems to work.
- No way to pass options for compression level. I don't need it (yet).
TODO
- Sandbox
- Linux
- Windows?
- OpenBSD: pledge
- FreeBSD
- Pass options to (un)archivers.
Benchmark
Details:
- Chimera Linux, kernel 6.8.9-0-generic
- AMD Ryzen 7 7700 8-Core
- Samsung SSD 990 PRO 2TB
- Go 1.22.3
- OpenBSD source code, a recent git clone, 99709 files (and directories)
- 1.6GiB
Pack:
tar 2.61s 1.5GiB
tar.gz 2.05s 269MiB
tar.s2 2.31s 365MiB
tar.xz 47.42s 214MiB
tar.zst 3.31s 224MiB
zip 15.95s 312MiB
Unpack:
tar 3.19s
tar.gz 3.72s
tar.s2 3.35s
tar.xz 120.44s
tar.zst 3.22s
zip 6.02s
Notes:
- All archive types are implemented in Go.
- All these archive types use the default options.