https://github.com/hslam/tar
Package tar implements access to tar archives.
https://github.com/hslam/tar
archive go golang gz gzip tar targz
Last synced: about 1 month ago
JSON representation
Package tar implements access to tar archives.
- Host: GitHub
- URL: https://github.com/hslam/tar
- Owner: hslam
- License: mit
- Created: 2020-12-28T07:36:20.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-03-09T12:06:50.000Z (over 5 years ago)
- Last Synced: 2025-05-30T22:39:04.907Z (about 1 year ago)
- Topics: archive, go, golang, gz, gzip, tar, targz
- Language: Go
- Homepage:
- Size: 34.2 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# tar
[](https://pkg.go.dev/github.com/hslam/tar)
[](https://github.com/hslam/tar/actions)
[](https://codecov.io/gh/hslam/tar)
[](https://goreportcard.com/report/github.com/hslam/tar)
[](https://github.com/hslam/tar/blob/master/LICENSE)
Package tar implements access to tar archives.
## Feature
* Tar
* Gzip
* Tar files or dirs
## Get started
### Install
```
go get github.com/hslam/tar
```
### Import
```
import "github.com/hslam/tar"
```
### Usage
#### Example
```go
package main
import (
"fmt"
"github.com/hslam/tar"
"os"
)
func main() {
name := "file"
targz := "file.tar.gz"
defer os.Remove(name)
defer os.Remove(targz)
file, err := os.Create(name)
if err != nil {
panic(err)
}
contents := "Hello World"
file.Write([]byte(contents))
file.Close()
tar.Targz(targz, name)
os.Remove(name)
tar.Untargz(targz)
f, err := os.Open(name)
if err != nil {
panic(err)
}
defer f.Close()
buf := make([]byte, len(contents))
f.Read(buf)
fmt.Println(string(buf))
}
```
#### Tar bytes example
```go
package main
import (
"fmt"
"github.com/hslam/tar"
"os"
)
func main() {
targz := "file.tar.gz"
defer os.Remove(targz)
tw, err := tar.NewGzipFileWriter(targz)
if err != nil {
panic(err)
}
tw.TarBytes("file", []byte("Hello World"))
tw.Flush()
tw.Close()
tr, err := tar.NewGzipFileReader(targz)
if err != nil {
panic(err)
}
_, _, data, err := tr.NextBytes()
if err != nil {
panic(err)
}
fmt.Println(string(data))
}
```
#### Output
```
Hello World
```
### License
This package is licensed under a MIT license (Copyright (c) 2020 Meng Huang)
### Author
tar was written by Meng Huang.