Package cae implements PHP-like Compression and Archive Extensions.

Compression and Archive Extensions

GitHub Workflow Status codecov GoDoc Sourcegraph

中文文档

Package cae implements PHP-like Compression and Archive Extensions.

But this package has some modifications depends on Go-style.

Reference: PHP:Compression and Archive Extensions.

Code Convention: based on Go Code Convention.

Implementations

Package zip(Go Walker) and tz(Go Walker) both enable you to transparently read or write ZIP/TAR.GZ compressed archives and the files inside them.

  • Features:
    • Add file or directory from everywhere to archive, no one-to-one limitation.
    • Extract part of entries, not all at once.
    • Stream data directly into io.Writer without any file system storage.

Test cases and Coverage

All subpackages use GoConvey to write test cases, and coverage is more than 80 percent.

Use cases

  • Gogs: self hosted Git service in the Go Programming Language.
  • GoBlog: personal blogging application.
  • GoBuild: online Go cross-platform compilation and download service.

License

This project is under Apache v2 License. See the LICENSE file for the full license text.

Owner
ᴜɴᴋɴᴡᴏɴ
ʟɪғᴇ ɪs ᴍᴀɢɪᴄ. ᴄᴏᴅɪɴɢ ɪs ᴀʀᴛ.
ᴜɴᴋɴᴡᴏɴ
Similar Resources

A virtual file system for small to medium sized datasets (MB or GB, not TB or PB). Like Docker, but for data.

AetherFS assists in the production, distribution, and replication of embedded databases and in-memory datasets. You can think of it like Docker, but f

Feb 9, 2022

gsheet is a CLI tool (and Golang package) for piping csv data to and from Google Sheets

gsheet Table of Contents Introduction Why? Installation Authentication and Authorization What about OAuth authentication? CLI Usage Sheet commands Dri

Nov 15, 2022

mateors zip and unzip package

Zip unzip package How to install this package? go get github.com/mateors/mzip How to make zip files? package main import "github.com/mateors/mzip" f

Apr 25, 2022

A Go filesystem package for working with files and directories

Stowage A Go filesystem package for working with files and directories, it features a simple API with support for the common files and directories ope

May 28, 2021

A package to allow one to concurrently go through a filesystem with ease

skywalker Skywalker is a package to allow one to concurrently go through a filesystem with ease. Features Concurrency BlackList filtering WhiteList fi

Nov 14, 2022

Fast, dependency-free, small Go package to infer the binary file type based on the magic numbers signature

filetype Small and dependency free Go package to infer file and MIME type checking the magic numbers signature. For SVG file type checking, see go-is-

Jan 3, 2023

Maybe is a Go package to provide basic functionality for Option type structures

Maybe Maybe is a library that adds an Option data type for some native Go types. What does it offer: The types exported by this library are immutable

Oct 4, 2022

noioutil finds files using the "io/ioutil" package.

noioutil noioutil finds files using the "io/ioutil" package.

Dec 28, 2021

Yet another Go package for working with *.golden test files, with a focus on simplicity.

go-golden Yet another Go package for working with *.golden test files, with a focus on simplicity. Import import "github.com/jimeh/go-golden" Usage fu

Aug 3, 2022
Comments
  • too many open file when zip file

    too many open file when zip file

    it shows too many open files because the packing file is not closed.

    such as:

    https://github.com/Unknwon/cae/blob/master/zip/write.go#L229

    the *os.File is not closed

  • support extract particular files

    support extract particular files

    can I extract one or some files from zip archive.

    for example:

    z,_ := zip.Open("xxx.zip")
    z.ExtractFile("dest_dir","aaa/bbb.txt","ccc,txt") 
    
Vaala archive is a tar archive tool & library optimized for lots of small files.

?? Vaar ?? Vaala archive is a tar archive tool & library optimized for lots of small files. Written in Golang, vaar performs operations in parallel &

Sep 12, 2022
ZAR File (Zip-Archiv) Archive Extractor in Golang

unzar - extractor for Zip-Archiv (ZAR) files A proprietary format by Peter Troxler. These files are DCL imploded with some basic header. Requires To b

Jan 8, 2022
Optimized compression packages

compress This package provides various compression algorithms. zstandard compression and decompression in pure Go. S2 is a high performance replacemen

Dec 31, 2022
A tool for moving files into directories by file extensions
A tool for moving files into directories by file extensions

The tool for moving files into directories by file extensions Example before moving structure: moving into same extension dir result: moving into diff

Dec 6, 2021
Takes an input http.FileSystem (likely at go generate time) and generates Go code that statically implements it.

vfsgen Package vfsgen takes an http.FileSystem (likely at go generate time) and generates Go code that statically implements the provided http.FileSys

Dec 18, 2022
Allows parsing CSV files into custom structs and implements required fields that can't be empty

Welcome to Go Custom CSV Parser ?? Allows parsing CSV files into custom structs and implements required fields that can't be empty ?? Homepage Install

Nov 9, 2021
searchHIBP is a golang tool that implements binary search over a hash ordered binary file.

searchHIBP is a golang tool that implements binary search over a hash ordered binary file.

Nov 9, 2021
implements glob pattern match. This is implemented according to IEEE Std 1003.1-2017.

glob Package glob implements glob pattern match. This is implemented according to IEEE Std 1003.1-2017. Special Chars ?: A <question-mark> is a patter

Apr 10, 2022
🌳 Go Bonzai™ File Completer, normal completion looking at files and directories with trailing slashes on directories (like bash)

?? Go Bonzai™ File Completer, normal completion looking at files and directories with trailing slashes on directories (like bash)

Apr 12, 2022
Plik is a scalable & friendly temporary file upload system ( wetransfer like ) in golang.

Want to chat with us ? Telegram channel : https://t.me/plik_root_gg Plik Plik is a scalable & friendly temporary file upload system ( wetransfer like

Jan 2, 2023