# mholt/archiver

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/mholt-archiver).**

4,467 stars · 402 forks · Go · mit · archived

## Links

- GitHub: https://github.com/mholt/archiver
- Homepage: https://github.com/mholt/archives
- awesome-repositories: https://awesome-repositories.com/repository/mholt-archiver.md

## Topics

`7zip` `archives` `brotli` `bzip2` `compression` `decompression` `extract` `go` `golang` `gzip` `lz4` `rar` `snappy` `streaming` `streams` `tar` `xz` `zip` `zstandard`

## Description

Archiver is a multi-format archive library and command-line tool for creating, extracting, and managing compressed archives. It provides a unified interface for working with formats including gzip, bzip2, zip, tar, rar, 7zip, and zstandard, and can automatically detect archive formats by inspecting binary byte headers rather than relying solely on file extensions.

The library uses interface-based abstractions and a multi-format codec registry to support format-agnostic operations, while its stream-based compression pipeline processes archive data continuously without loading entire archives into memory. A virtual filesystem mapping capability allows reading or listing archive entries without full extraction.

Archiver offers both a programmatic API for developers and a command-line interface for managing archives without writing code. The tool handles creating and extracting archives across all supported formats, with stream-based processing to efficiently manage large files.

## Tags

### Development Tools & Productivity

- [Multi-Format Archive Management](https://awesome-repositories.com/f/development-tools-productivity/multi-format-archive-management.md) — Creates and extracts archives across a wide range of compression and archiving formats from a single library.
- [Archive Format Detection](https://awesome-repositories.com/f/development-tools-productivity/archive-format-detection.md) — Identifies archive formats by inspecting binary byte headers and file extensions for seamless extraction.
- [Terminal Archive Commands](https://awesome-repositories.com/f/development-tools-productivity/archive-management/terminal-archive-commands.md) — Provides a command-line interface for creating, extracting, and managing archives across multiple formats.
- [Codec Registries](https://awesome-repositories.com/f/development-tools-productivity/multi-format-archive-management/codec-registries.md) — Registers and manages multiple compression and archiving codecs for format-agnostic operations.
- [Archive Entry Mappings](https://awesome-repositories.com/f/development-tools-productivity/virtual-filesystem-interfaces/archive-entry-mappings.md) — Maps archive entries to a virtual filesystem for reading or listing files without full extraction.

### Business & Productivity Software

- [Multi-Format Archive Creators](https://awesome-repositories.com/f/business-productivity-software/archive-format-converters/multi-format-archive-creators.md) — Creates compressed archives using gzip, bzip2, zip, tar, rar, 7zip, and zstandard formats. ([source](https://github.com/mholt/archiver#readme))

### Content Management & Publishing

- [Multi-Format Archive Extraction Commands](https://awesome-repositories.com/f/content-management-publishing/content-archiving/web-content-archivers/session-data-archivers/remote-archive-extraction/archive-extraction/multi-format-archive-extraction-commands.md) — Extracts files from archives in gzip, bzip2, zip, tar, rar, 7zip, and zstandard formats. ([source](https://github.com/mholt/archiver#readme))

### Operating Systems & Systems Programming

- [Stream-Based Archive Handling](https://awesome-repositories.com/f/operating-systems-systems-programming/file-system-access/zip-archive-access/stream-based-archive-handling.md) — Processes archive data as a continuous stream without loading the entire archive into memory.

### Data & Databases

- [Archive Data Loading](https://awesome-repositories.com/f/data-databases/lossless-data-archiving/archive-data-loading.md) — Processes archive data as a continuous stream without loading the entire archive into memory. ([source](https://github.com/mholt/archiver#readme))

### Software Engineering & Architecture

- [Format Abstraction Interfaces](https://awesome-repositories.com/f/software-engineering-architecture/format-abstraction-interfaces.md) — Uses interface-based abstractions to decouple archive operations from specific format implementations.

### Part of an Awesome List

- [Command Line Tools](https://awesome-repositories.com/f/awesome-lists/devtools/command-line-tools.md) — Listed in the “Command Line Tools” section of the The Book Of Secret Knowledge awesome list.
- [Miscellaneous Tools](https://awesome-repositories.com/f/awesome-lists/more/miscellaneous-tools.md) — Tool for creating and extracting various archive formats.
