Categorygithub.com/gen2brain/go-unarr
modulepackage
0.2.4
Repository: https://github.com/gen2brain/go-unarr.git
Documentation: pkg.go.dev

# README

go-unarr

Build Status GoDoc Go Report Card

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 library
  • pkgconfig - enable pkg-config (used with extlib)
  • static - use static library (used with pkgconfig)

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

# Structs

Archive represents unarr archive.