Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. go-unarr

go-unarr

ZlibGov0.2.4

Go bindings for the unarr library, providing decompression support for RAR, TAR, ZIP, and 7z archives.

GitHubGitHub
310 stars48 forks0 contributors

What is go-unarr?

go-unarr is a Go library that provides bindings for the unarr decompression library, enabling Go applications to handle archive files. It supports extracting, listing, and reading from RAR, TAR, ZIP, and 7z archives, solving the need for native archive processing in Go projects.

Target Audience

Go developers who need to work with compressed archives in their applications, such as those building file management tools, backup systems, or data processing pipelines.

Value Proposition

It offers a straightforward, idiomatic Go API for archive operations, leveraging the proven unarr library for reliable decompression without requiring external tools or complex implementations.

Overview

Go bindings for unarr (decompression library for RAR, TAR, ZIP and 7z archives)

Use Cases

Best For

  • Extracting archive files in Go applications
  • Building CLI tools for archive management
  • Processing compressed data in backend services
  • Reading specific files from archives programmatically
  • Handling multiple archive formats (RAR, ZIP, 7z, TAR) uniformly
  • Integrating archive support without shelling out to external commands

Not Ideal For

  • Projects requiring archive creation or compression capabilities
  • Applications needing full support for encrypted RAR archives or latest archive format versions
  • Environments where minimizing external C library dependencies is critical
  • High-performance systems where the overhead of C bindings could impact speed compared to pure Go libraries

Pros & Cons

Pros

Multi-Format Support

Supports RAR, TAR, ZIP, and 7z archives, providing a unified interface for common decompression needs, as highlighted in the README's feature list.

Idiomatic Go API

Offers a clean, Go-like interface with simple methods like a.Entry() and a.ReadAll(), making it easy to integrate into Go applications, as shown in the library examples.

Included CLI Tool

Comes with a command-line utility, unarr, for direct archive extraction, which is installable via go install, adding convenience for developers.

Cross-Platform Builds

Leverages Go tooling for cross-compilation to multiple platforms, ensuring consistent behavior across operating systems, as mentioned in the README.

Cons

C Library Dependency

Relies on the unarr C library, requiring complex setup with build tags like extlib and pkgconfig, which can complicate deployment and increase maintenance overhead.

Decompression Only

Lacks support for creating or modifying archives, limiting functionality to read-only operations, which may not suffice for full archive management tasks.

Potential Feature Limitations

Inherits limitations from the unarr library, such as possible gaps in handling encrypted archives or newer RAR formats, which could affect reliability in edge cases.

Frequently Asked Questions

Quick Stats

Stars310
Forks48
Contributors0
Open Issues2
Last commit1 year ago
CreatedSince 2015

Tags

#tar#go-bindings#cli-tool#7z#golang-library#zip#golang#file-compression#7zip#decompression#rar#archive-extraction

Built With

G
Go

Included in

Go169.1k
Auto-fetched 18 hours ago

Related Projects

gopsutilgopsutil

psutil for golang

Stars11,882
Forks1,678
Last commit2 days ago
gatusgatus

Automated developer-oriented status page with alerting and incident support

Stars11,595
Forks774
Last commit5 days ago
gofakeitgofakeit

Random fake data generator written in go

Stars5,372
Forks297
Last commit2 months ago
puregopurego

A library for calling C functions from Go without Cgo

Stars3,746
Forks118
Last commit4 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub