Skip to content

derniercri/snatch

devel
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
img
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

build status

snatch

A simple, fast and interruptable download accelerator, written in Rust

WARNING

This project is no longer maintained by @k0pernicus and @jean-serge.
Instead of Snatch, you can use, report features or issues and/or contribute to Zou.

Snatch logo

(A special thanks to @fh-d for this awesome logo !)

Current features

  • Simple: a command line tool to manage easily your downloads ;
  • Fast: multithreading support.

NOTE: Snatch is on alpha version. This version runs well on remote contents with a length known before the download (with the content-length header from the server response) - also, the Interruptable feature is not implemented yet.

Installation

  1. Install Rust and Cargo using rustup ;
  2. You can download two versions of Snatch :
  • the latest build from crates.io: cargo install snatch ;
  • the last commit version from Github: cargo install --git https://github.com/derniercri/snatch.git --branch devel ;
  1. Enjoy !

Usage

Snatch 0.1.2
Snatch, a simple, fast and interruptable download accelerator, written in Rust.

USAGE:
    snatch [FLAGS] [OPTIONS] <url>

FLAGS:
    -d, --debug      Activate the debug mode
        --force      Assume Yes to all queries and do not prompt
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -f, --file <file>          The local file to save the remote content file
    -t, --threads <threads>    Threads which can be used to download

ARGS:
    <url>

Screenshot

example

File examples

Contributing

You want to contribute to Snatch ? Here are a few ways you can help us out :

  • improve the documentation,
  • improve the CLI,
  • add new features (please to see our issues),
  • report bugs.

If you want to create a pull request, this is the procedure to make it great:

  • create an issue to explain the problem you encountered (except for typo),
  • fork the project,
  • create a local branch to make changes (from our devel branch),
  • test your changes,
  • create a pull request (please compare it with our devel branch),
  • explain your changes,
  • submit !

Thank you for your interest in contributing to Snatch ! :-D

Changelogs

  • 0.1.3 (current)

    • Fix the behaviour to know if the download is OK or not
    • Delete automatically the file if the download is not OK
    • Fix the behaviour when downloading a file using zero thread (yes, that was possible...)
    • Fix the behaviour when downloading a file using one thread
    • Monothreading download if the remote server does not support PartialContent headers
  • 0.1.2 (2ee85c151167770ce0a71245e72c02497625087f)
    No changelogs reported

  • 0.1.1 (624a59d23e28d369bae2f9d30ea22db197f7e729)
    No changelogs reported

  • 0.1.0
    No changelogs reported

Build issues

  • Libraries cannot be build Please go check if you are using the latest version of rustc (stable), running rustup update.

  • fatal error: 'openssl/hmac.h' file not found If you are on a GNU/Linux distribution (like Ubuntu), please install libssl-dev. If you are on macOS, please install openssl and check your OpenSSL configuration:

brew install openssl
export OPENSSL_INCLUDE_DIR=`brew --prefix openssl`/include
export OPENSSL_LIB_DIR=`brew --prefix openssl`/lib
export DEP_OPENSSL_INCLUDE=`brew --prefix openssl`/include