All Projects → winsoft666 → Teemo

winsoft666 / Teemo

Licence: gpl-3.0
C++ File Download Library.

Projects that are alternatives of or similar to Teemo

Saldl
A lightweight well-featured CLI downloader optimized for speed and early preview.
Stars: ✭ 203 (+14.69%)
Mutual labels:  downloader, libcurl
Imagetosticker
Whatsapp Bot - sticker creator
Stars: ✭ 170 (-3.95%)
Mutual labels:  downloader
Firupdater
Fir.im通道APK更新器,使用简单,让自己的demo快速具备升级功能
Stars: ✭ 148 (-16.38%)
Mutual labels:  downloader
Happypanda
A cross platform manga/doujinshi manager with namespace & tag support
Stars: ✭ 161 (-9.04%)
Mutual labels:  downloader
Mangaripper
This software helps you download manga (Japanese Comic) from several websites for your offline viewing.
Stars: ✭ 151 (-14.69%)
Mutual labels:  downloader
Gitdir
Download a single directory/folder from a GitHub repo
Stars: ✭ 163 (-7.91%)
Mutual labels:  downloader
Axel
Axel tries to accelerate the download process by using multiple connections per file, and can also balance the load between different servers.
Stars: ✭ 1,997 (+1028.25%)
Mutual labels:  downloader
Invoker
Penetration testing utility, and antivirus assessment tool.
Stars: ✭ 178 (+0.56%)
Mutual labels:  downloader
Youget
YouGet - YouTube Video/Playlist Downloader/Cutter - MP3 Converter
Stars: ✭ 169 (-4.52%)
Mutual labels:  downloader
Java Youtube Downloader
Simple, almost zero-dependency java parser for retrieving youtube video metadata
Stars: ✭ 160 (-9.6%)
Mutual labels:  downloader
Vdm
GUI for command-line video downloader (youtube-dl annie)
Stars: ✭ 1,910 (+979.1%)
Mutual labels:  downloader
Dezoomify Rs
Zoomable image downloader for Google Arts & Culture, Zoomify, IIIF, and others
Stars: ✭ 150 (-15.25%)
Mutual labels:  downloader
Rxdownloader
Demo of Downloading Songs/Images through Android Download Manager using RxJava2
Stars: ✭ 166 (-6.21%)
Mutual labels:  downloader
Imoocdownloader
慕课网视频下载器
Stars: ✭ 149 (-15.82%)
Mutual labels:  downloader
Ficsave
This is the repo for FicSave, an open-source online fanfiction downloader.
Stars: ✭ 172 (-2.82%)
Mutual labels:  downloader
Python Dcdownloader
由Python编写的全异步实现的动漫之家(dmzj)漫画批量下载器(爬虫)
Stars: ✭ 146 (-17.51%)
Mutual labels:  downloader
Nacollector
⚔ 一个采集工具箱,据说是一个用于采集各种 WEB 资源的工作站?!你可以认为这是一个框架,可拓展。淘宝、天猫、苏宁、国美 等电商平台数据采集... 一键邀请 一键打包 账号登录获取Cookie 任务多线程 下载内容管理 实时日志 dll 热更新 无边框窗体 Web App, CefSharp, WebDriver
Stars: ✭ 158 (-10.73%)
Mutual labels:  downloader
Macos Downloader
Command line tool for downloading macOS installers and beta updates
Stars: ✭ 162 (-8.47%)
Mutual labels:  downloader
Sdmusic
Search && Download Music from multi-platform
Stars: ✭ 178 (+0.56%)
Mutual labels:  downloader
Excel Parser Processor
Simply does the tedious, repetitive operations for all rows of excel files step by step and reports after the job is done. It can download files from URL(s) in a column of Excel files. If a new filename is provided at column B it will rename the file before saving. It will even create sub folders if column C is full with a valid folder name.
Stars: ✭ 177 (+0%)
Mutual labels:  downloader

Build Status Vcpkg package badge

English | 简体中文

1. Introduction

There are many mature and powerful download tools at present, such as Free Download Manager, Aria2, etc. However when I want to find a library that support multiple protocols (such as http, ftp), multi-threaded download, breakpoint resume download, cross-platform, I realize that this is difficult to find a satisfactory library, especially developed by C++.

So I developed this download library named "teemo" based on libcurl, which can support the following features:

✅ Support Multi-protocol. Since teemo based on libcurl, so it supports all protocols that same as libcurl.

✅ Support multi-threaded download.

✅ Support breakpoint resume.

✅ Support downloading pause/resume.

✅ Support for obtaining real-time download rate.

✅ Support download speed limit.

✅ Support disk cache.

✅ Support hash checksum verify.


2. Compile and Install

Method 1: Using with vcpkg

The teemo library has been included in Microsoft's vcpkg, you can use the following command to install teemo:

vcpkg install teemo:x86-windows

About vcpkg: https://github.com/microsoft/vcpkg

Method 2: Compile from source code

Step 1: Install dependencies

I prefer to use vcpkg to install dependencies. Of course, this is not the only way, you can install dependencies through any ways.

Recommend: add the directory where vcpkg.exe resides to the PATH environment variable.

  • libcurl
# if you want support non-http protocol, such as ftp, the [non-http] option must be specified.
vcpkg install curl[non-http]:x86-windows
  • gtest

unit test project depend on gtest.

vcpkg install gtest:x86-windows

Step 2: Compile teemo

Firstly using CMake to generate project or makefile, then comiple it:

# Windows Sample
cmake.exe -G "Visual Studio 15 2017" -DBUILD_SHARED_LIBS=ON -DBUILD_TESTS=ON -S %~dp0 -B %~dp0build

# Linux Sample
cmake -DBUILD_SHARED_LIBS=ON -DBUILD_TESTS=ON
make
make install

3. Getting Started

#include <iostream>
#include "teemo.h"

int main(int argc, char** argv) {
  using namespace teemo;

  Teemo::GlobalInit();

  Teemo efd;

  efd.setThreadNum(10);                     // Optional
  efd.setTmpFileExpiredTime(3600);          // Optional
  efd.setDiskCacheSize(20 * (2 << 19));     // Optional
  efd.setMaxDownloadSpeed(50 * (2 << 19));  // Optional
  efd.setHashVerifyPolicy(ALWAYS, MD5, "6fe294c3ef4765468af4950d44c65525"); // Optional, support MD5, CRC32, SHA256
  efd.setVerboseOutput([](const utf8string& verbose) { // Optional
    printf("%s\n", verbose.c_str());
  });
  
  std::shared_future<Result> async_task = efd.start(
      u8"http://xxx.xxx.com/test.exe", u8"D:\\test.exe",
      [](Result result) {  // Optional
        // result callback
      },
      [](int64_t total, int64_t downloaded) {  // Optional
        // progress callback
      },
      [](int64_t byte_per_secs) {  // Optional
        // real-time speed callback
      });

  async_task.wait();

  Teemo::GlobalUnInit();

  return 0;
}

4. Command-line tool

teemo is command-line download tool based on teemo library.

Usage:

teemo_tool URL TargetFilePath [ThreadNum] [DiskCacheMb] [MD5] [TmpExpiredSeconds] [MaxSpeed]
  • URL: Download URL.
  • TargetFilePath: target file saved path.
  • ThreadNum: thread number, optional, default is 1.
  • DiskCacheMb: Disk cache size(Mb), default is 20Mb.
  • MD5: target file md5, optional, if this value isn't empty, tools will check file md5 after download finished.
  • TmpExpiredSeconds: seconds, optional, the temporary file will expired after these senconds.
  • MaxSpeed: max download speed(byte/s).

5. Donate

This project does not accept donations, Thank you for your kindness, If you think this project helped you, you can give the project a star.

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].