A simple, fast and interruptable download accelerator, written in Rust
Clone or download
Jean-Serge Merge pull request #77 from k0pernicus/devel
Last improvements + no longer maintained
Latest commit 4e9d704 Sep 19, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
img Change gif Feb 5, 2017
src Replace println statements with macros from src/logs Jun 6, 2017
tests Update tests Jan 26, 2017
.gitignore .gitkeep location has been changed Dec 30, 2016
.travis.yml change .travis.yml Jan 30, 2017
Cargo.lock Snatch 0.1.2 -> 0.1.3 Jun 2, 2017
Cargo.toml Snatch 0.1.2 -> 0.1.3 Jun 2, 2017
LICENSE Create LICENSE Jan 21, 2017
README.md Snatch is no longer maintained Sep 19, 2017


build status


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


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.


  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 !


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

    snatch [FLAGS] [OPTIONS] <url>

    -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

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




File examples


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


  • 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