An open API service indexing awesome lists of open source software.

https://github.com/s-emanuilov/gotake

CLI tool designed to expedite file downloading processes. Engineered for reliability and ease of use, it's compatible across Mac, Linux, and Windows platforms.
https://github.com/s-emanuilov/gotake

cli downloader performance

Last synced: 2 months ago
JSON representation

CLI tool designed to expedite file downloading processes. Engineered for reliability and ease of use, it's compatible across Mac, Linux, and Windows platforms.

Awesome Lists containing this project

README

        

# gotake: high-speed file downloader

`gotake` is a CLI tool designed to expedite file downloading processes. Engineered for reliability and ease of use, it's compatible across Mac, Linux, and Windows platforms.
Under the hood, `gotake` employs either standard HTTP requests or range requests to fetch files, the latter enabling concurrent downloads of file chunks which are subsequently assembled to form the complete file.

## Install
Install `gotake` with a simple one-liner. Below are the instructions for macOS and Linux:

### macOS

```bash
sudo curl -L "https://github.com/simeonemanuilov/gotake/releases/download/0.5/gotake-darwin-x86_64" -o /usr/local/bin/gotake && sudo chmod +x /usr/local/bin/gotake
```

### Linux

```bash
sudo curl -L "https://github.com/simeonemanuilov/gotake/releases/download/0.5/gotake-linux-x86_64" -o /usr/local/bin/gotake && sudo chmod +x /usr/local/bin/gotake
```

## Examples
Launching a download is straightforward with `gotake`. Here are some examples to get you started:

### Quick download (auto find optimal connections amount)

```bash
gotake http://sample.li/face.png
```

### Download and print summary

```bash
gotake http://sample.li/boat.jpg -i
```

### Download in verbose mode

```bash
gotake http://sample.li/tesla.jpg -v
```

### Download with different type of connections

```bash
gotake http://sample.li/tesla.jpg -c=10 -a=False
```

## How it works


Schema for file downloads with gotake

## Benchmarks


Quick Benchmark

## Documentation

Check the documentation and available flags

```bash
gotake -h
```


gotake Documentation

## Flags
### -a, --auto (bool)
default: **True**
Choose the number of connections automatically, depending on the file size.

### -c, --connections (int)
default: **50**
Number of connections. You need to disable **auto** mode for using a specific number.

### -f, --filename (string)
default: **extracted from URL**
Define different name to the target file if you prefer.

### -i, --info (bool)
default: **False**
Print a summary for the download after finish.

### -s, --standard (bool)
default: **False**
Force the standard method of download (not using Range-Request).

### -v, --verbose (bool)
default: **False**
Show information about the current state of download process. Useful for debug.

### -h, --help
Print a documentation with all available flags.

## ⚒ Compile from source

The other way to install **gotake** is to clone its GitHub repository and build it from source. That is the common way
if you want to make changes to the code base. The tool is made with [Golang](http://golang.bg/).

```bash
git clone https://github.com/simeonemanuilov/gotake
cd gotake
go build
```

## License

**gotake** is an Open-Source Project, and you can contribute to it in many ways.