All Projects → mamantoha → zipstream

mamantoha / zipstream

Licence: MIT license
A command line tool that allows you to easily share files and directories over the network

Programming Languages

crystal
512 projects
HTML
75241 projects

Projects that are alternatives of or similar to zipstream

Sharpcompress
SharpCompress is a fully managed C# library to deal with many compression types and formats.
Stars: ✭ 1,397 (+2751.02%)
Mutual labels:  gzip, zip, tar
Libarchivejs
Archive library for browsers
Stars: ✭ 145 (+195.92%)
Mutual labels:  gzip, zip, tar
Leanify
lightweight lossless file minifier/optimizer
Stars: ✭ 694 (+1316.33%)
Mutual labels:  gzip, zip, tar
Swcompression
A Swift framework for working with compression, archives and containers.
Stars: ✭ 110 (+124.49%)
Mutual labels:  gzip, zip, tar
compress
compress and uncompress for Deno
Stars: ✭ 29 (-40.82%)
Mutual labels:  gzip, zip, tar
Archiver
Easily create & extract archives, and compress & decompress files of various formats
Stars: ✭ 3,373 (+6783.67%)
Mutual labels:  gzip, zip, tar
ratarmount
Random Access Read-Only Tar Mount
Stars: ✭ 217 (+342.86%)
Mutual labels:  gzip, zip, tar
Bit7z
A C++ static library offering a clean and simple interface to the 7-zip DLLs.
Stars: ✭ 159 (+224.49%)
Mutual labels:  gzip, zip, tar
Unifiedarchive
UnifiedArchive - an archive manager with a unified way for different formats. Supports all basic (listing, reading, extracting and creation) and specific features (compression level, password-protection). Bundled with console program for working with archives.
Stars: ✭ 246 (+402.04%)
Mutual labels:  gzip, zip, tar
Zippy
Pure Nim implementation of deflate, zlib, gzip and zip.
Stars: ✭ 88 (+79.59%)
Mutual labels:  gzip, zip
comi
ComiGO:Simple, cross-platform manga reader。简单、跨平台的漫画阅读器。シンプルな漫画リーダー。
Stars: ✭ 34 (-30.61%)
Mutual labels:  zip, tar
Iostreams
IOStreams is an incredibly powerful streaming library that makes changes to file formats, compression, encryption, or storage mechanism transparent to the application.
Stars: ✭ 84 (+71.43%)
Mutual labels:  gzip, zip
Compressing
Everything you need for compressing and uncompressing
Stars: ✭ 268 (+446.94%)
Mutual labels:  gzip, tar
Datacompression
Swift libcompression wrapper as an extension for the Data type (GZIP, ZLIB, LZFSE, LZMA, LZ4, deflate, RFC-1950, RFC-1951, RFC-1952)
Stars: ✭ 191 (+289.8%)
Mutual labels:  gzip, zip
Turbobench
Compression Benchmark
Stars: ✭ 211 (+330.61%)
Mutual labels:  gzip, zip
MangDL
The most inefficient Manga downloader for PC
Stars: ✭ 40 (-18.37%)
Mutual labels:  zip, tar
extractor
Compressed files extractor for PHP
Stars: ✭ 23 (-53.06%)
Mutual labels:  zip, tar
Compress
Optimized Go Compression Packages
Stars: ✭ 2,478 (+4957.14%)
Mutual labels:  gzip, zip
QArchive
Async C++ Cross-Platform library that modernizes libarchive using Qt5 🚀. Simply extracts 7z 🍔, Tarballs 🎱 and other supported formats by libarchive. ❤️
Stars: ✭ 66 (+34.69%)
Mutual labels:  zip, tar
zzlib
zlib-compressed file depacking library in Lua
Stars: ✭ 44 (-10.2%)
Mutual labels:  gzip, zip

zipstream

Built with Crystal Crystal CI GitHub release Commits Since Last Release zipstream zipstream

A command line tool that allows you to easily share files and directories over the network

Installation

Get it from the Snap Store

Precompiled executables are available for Linux and macOS from Releases page.

Snap-specific information

Due to the snap's confined nature, the application can only access files in the user's home directory. To access files under /media or /mnt directories you have to manually connect the snap to the removable-media interface by running the following command in a terminal

sudo snap connect zipstream:removable-media

Build from source

Clone the repository:

git clone https://github.com/mamantoha/zipstream.git

Switch to repo-directory

cd zipstream

Build:

shards build

Copy ./bin/zipstream to executable path.

Enjoy!

Usage

Help message:

NAME
    zipstream - is a command line tool that allows you to easily share files and directories over the network

VERSION
    0.18.14

SYNOPSIS
    zipstream PATH [options]

If PATH is not specified it point to current directory

OPTIONS
    -h, --help                       give this help list
    -l, --log                        logging of requests/responses
    -w, --web                        run WEB Server with the directory listing
    -H HOST, --host=HOST             the host (default: `0.0.0.0`)
    -p PORT, --port=PORT             the port (default: `8090`)
    -f FORMAT, --format=FORMAT       the format of output archive, zip, tar or tgz. Only for CLI mode. (default: `zip`)
    -o FILENAME, --output=FILENAME   the output file name without extension. Only for CLI mode. (default: `download`)
    -e PATH, --endpoint=PATH         the URL path to the resource. Only for CLI mode. (default: ``)
    -j, --junk-parent                stream the content of an archive without including the parent directory
    -h, --hidden                     match hidden files and folders
    --user=user                      the username user for file retrieval
    --password=password              the password password for file retrieval
    -V, --version                    print program version

Sharing a directory as tar archive:

$ zipstream -f tar /media/disk/music --user=admin --password=passwd -o music -e dl
     _           _
    (_)         | |
 _____ _ __  ___| |_ _ __ ___  __ _ _ __ ___
|_  / | '_ \/ __| __| '__/ _ \/ _` | '_ ` _ \
 / /| | |_) \__ \ |_| | |  __/ (_| | | | | | |
/___|_| .__/|___/\__|_|  \___|\__,_|_| |_| |_|
      | |
      |_|

Serving `/media/disk/music` as `music.tar`

To download the file please use one of the commands below:

wget --content-disposition --user admin --password passwd http://0.0.0.0:8090/dl
curl -OJ --user admin:passwd http://0.0.0.0:8090/dl

Or place all files into current folder:

wget -O- --user admin --password passwd http://0.0.0.0:8090/dl | tar -xvf -
curl --user admin:passwd http://0.0.0.0:8090/dl | tar -xvf -

Or just open in browser: http://0.0.0.0:8090/dl

Run an ad hoc http static server in specified directory, available at http://localhost:8090:

zipstream /media/disk/crystal --web

Image of browser

Contributing

  1. Fork it (https://github.com/mamantoha/zipstream/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].