Giter Site home page Giter Site logo

ambarishsatheesh / bittorrent-client Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 1.0 10.8 MB

Bittorrent Client implementing BTP/1.0 and select extensions (BEPs 0015, 0020, 0023, 0027). Features full GUI with real-time data using Qt5. Supports Windows 10.

C++ 99.79% QMake 0.21%
qt5 c-plus-plus bittorrent-client gui-application bencode-parser boost-asio

bittorrent-client's Introduction

Bittorrent Client

Bittorrent Client implementing BTP/1.0 plus select extensions (BEPs 0015, 0020, 0023, 0027)

Features

  • qBittorrent-inspired GUI written using Qt5
  • Supports multiple simultaneous torrent downloads/uploads
  • Supported extensions: UDP Tracker Protocol, Peer ID Conventions, Compact Peer Lists, and Private Torrents
  • Bencode parser (implemented using iterator-based parsing)
  • Asynchronous I/O (TCP and UDP networking) support using Boost Asio, with event handling aided by Boost Signals2
  • HTTP tracker support using Boost Beast
  • Multithreading support allows handling of multiple torrents, connections to peers, downloads/uploads, and GUI interaction to maximise network and file I/O performance
  • Simple network scheduling using a token bucket to control bandwidth
  • Real-time data updates including torrent, tracker, download progress, and network transfer information
  • Real-time network transfer speed graph implemented using QCustomPlot plotting library
  • Torrent filtering based on trackers and sorting using any of the columns
  • User-configurable network settings (TCP/UDP ports, max/min peers, max download/upload speed)
  • Logging to console implemented using Emil Ernerfeldt's Loguru library
  • Torrent piece and info_hash SHA1 hashing implemented using Stephan Brumme's Hashing library
  • Supports Windows 10.

Screenshots

General GUI and real-time transfer speed tab:

Torrent creator:

Torrent file adder:

Real-time tracker info:

User-modifiable configuration settings:

Logging to console output:

bittorrent-client's People

Contributors

ambarishsatheesh avatar

Watchers

 avatar

Forkers

tikelvira

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.