# README
go-unarr
Golang bindings for the unarr library from sumatrapdf.
unarr
is a decompression library and CLI for RAR, TAR, ZIP and 7z archives.
GoDoc
See https://pkg.go.dev/github.com/gen2brain/go-unarr
Build tags
extlib
- use external libunarr librarypkgconfig
- enable pkg-config (used withextlib
)static
- use static library (used withpkgconfig
)
Install CLI
go install github.com/gen2brain/go-unarr/cmd/unarr@latest
Example
unarr ./example.7z ./example/
Build
For one-off builds:
go build -o ./unarr ./cmd/unarr/*.go
For multi-platform cross-compile builds:
goreleaser --snapshot --skip-publish --rm-dist
Library Examples
Install Library
go get -v github.com/gen2brain/go-unarr
Open archive
a, err := unarr.NewArchive("test.7z")
if err != nil {
panic(err)
}
defer a.Close()
Read first entry from archive
err := a.Entry()
if err != nil {
panic(err)
}
data, err := a.ReadAll()
if err != nil {
panic(err)
}
List contents of archive
list, err := a.List()
if err != nil {
panic(err)
}
Read known filename from archive
err := a.EntryFor("filename.txt")
if err != nil {
panic(err)
}
data, err := a.ReadAll()
if err != nil {
panic(err)
}
Read first 8 bytes of the entry
err := a.Entry()
if err != nil {
panic(err)
}
data := make([]byte, 8)
n, err := a.Read(data)
if err != nil {
panic(err)
}
Read all entries from archive
for {
err := a.Entry()
if err != nil {
if err == io.EOF {
break
} else {
panic(err)
}
}
data, err := a.ReadAll()
if err != nil {
panic(err)
}
}
Extract contents of archive to destination path
_, err := a.Extract("/tmp/path")
if err != nil {
panic(err)
}
# Packages
No description provided by the author
# Functions
NewArchive returns new unarr Archive.
NewArchiveFromMemory returns new unarr Archive from byte slice.
NewArchiveFromReader returns new unarr Archive from io.Reader.
# Variables
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author