Skip to content

nlepage/go-tarfs

Repository files navigation

go-tarfs

Go Reference GitHub release (latest SemVer) GitHub Workflow Status License Unlicense

All Contributors

Read a tar file contents using go1.16 io/fs abstraction

Usage

⚠️ go-tarfs needs go>=1.16

Install:

go get github.com/nlepage/go-tarfs

Use:

package main

import (
    "os"

    tarfs "github.com/nlepage/go-tarfs"
)

func main() {
    tf, err := os.Open("path/to/archive.tar")
    if err != nil {
        panic(err)
    }
    defer tf.Close()

    tfs, err := tarfs.New(tf)
    if err != nil {
        panic(err)
    }

    f, err := tfs.Open("path/to/some/file")
    if err != nil {
        panic(err)
    }
    // defer f.Close() isn't necessary, it is a noop
    
    // use f...
}

More information at pkg.go.dev/github.com/nlepage/go-tarfs

Caveats

For now, no effort is done to support symbolic links.

Show your support

Give a ⭐️ if this project helped you!

Author

πŸ‘€ Nicolas Lepage

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Jonas Plum

⚠️ πŸ’»

MengYX

πŸ› πŸ’»

Andrey Dyatlov

πŸ› πŸ’» ⚠️

This project follows the all-contributors specification. Contributions of any kind welcome!

πŸ“ License

This project is unlicensed, it is free and unencumbered software released into the public domain.