Package cae implements PHP-like Compression and Archive Extensions.

Overview

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.

Issues
  • 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

    bug 
    opened by fuxiaohei 1
  • 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") 
    
    opened by fuxiaohei 0
Releases(v1.0.2)
Owner
ᴜɴᴋɴᴡᴏɴ
ʟɪғᴇ ɪs ᴍᴀɢɪᴄ. ᴄᴏᴅɪɴɢ ɪs ᴀʀᴛ.
ᴜɴᴋɴᴡᴏɴ
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 &

Qing Moy 13 Jul 6, 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

Kris 0 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

Klaus Post 3.1k Aug 9, 2022
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

Uladzislau Jum 0 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

null 947 Aug 6, 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

Elmedin Turkeš 2 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.

fblz 0 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

Koumei Mikuni 1 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)

Rob Muhlestein 2 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

root.gg 1k Aug 10, 2022
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

mya 8 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

chris 17 Jun 21, 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

MD MOSTAIN BILLAH 15 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

null 19 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

Will Dixon 82 Jul 26, 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-

Tom 1.6k Aug 8, 2022
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

Pablo Morelli 8 Mar 28, 2022
noioutil finds files using the "io/ioutil" package.

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

Leo Takaoka 2 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

Jim Myhrberg 6 Aug 3, 2022