Transmission is a fast, easy, and free BitTorrent client.

Overview

About

Transmission is a fast, easy, and free BitTorrent client. It comes in several flavors:

  • A native Mac OS X GUI application
  • GTK+ and Qt GUI applications for Linux, BSD, etc.
  • A headless daemon for servers and routers
  • A web UI for remote controlling any of the above

Visit https://transmissionbt.com/ for more information.

Command line interface notes

Transmission is fully supported in transmission-remote, the preferred cli client.

Three standalone tools to examine, create, and edit .torrent files exist: transmission-show, transmission-create, and transmission-edit, respectively.

Prior to development of transmission-remote, the standalone client transmission-cli was created. Limited to a single torrent at a time, transmission-cli is deprecated and exists primarily to support older hardware dependent upon it. In almost all instances, transmission-remote should be used instead.

Different distributions may choose to package any or all of these tools in one or more separate packages.

Building

Transmission has an Xcode project file (Transmission.xcodeproj) for building in Xcode.

For a more detailed description, and dependencies, visit: https://github.com/transmission/transmission/wiki

Building a Transmission release from the command line

$ tar xf transmission-2.92.tar.xz
$ cd transmission-2.92
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install

Building Transmission from the nightly builds

Download a tarball from https://build.transmissionbt.com/job/trunk-linux/ and follow the steps from the previous section.

If you're new to building programs from source code, this is typically easier than building from Git.

Building Transmission from Git (first time)

$ git clone https://github.com/transmission/transmission Transmission
$ cd Transmission
$ git submodule update --init
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install

Building Transmission from Git (updating)

$ cd Transmission/build
$ make clean
$ git pull --rebase --prune
$ git submodule update
$ cmake ..
$ make
$ sudo make install

Contributing

Code Style

You would want to setup your editor to make use of the uncrustify.cfg file located in the root of this repository and the eslint/prettier rules in web/package.json.

If for some reason you are unwilling or unable to do so, there is a shell script which you could run either directly or via docker-compose:

$ ./code_style.sh
or
$ docker-compose build --pull
$ docker-compose run --rm code_style
Issues
  • transmission-daemon extreemly high memory usage

    transmission-daemon extreemly high memory usage

    I currently have five sessions running and they take up all available memory. It takes up all available ram fairly quickly sometimes within the hour.

    $ free -h
                  total        used        free      shared  buff/cache   available
    Mem:            15G         15G        157M         11M        127M         50M
    Swap:          8.0G        4.8G        3.2G
    
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root     31717  0.4  4.0 5475364 662052 ?      Ssl  Jun18  20:47 /usr/bin/transmission-daemon -f -g /path/to/config
    root     31619  0.3  4.4 5017080 719940 ?      Ssl  Jun18  16:25 /usr/bin/transmission-daemon -f -g /path/to/config
    root     31501  0.8  6.0 5278224 990924 ?      Ssl  Jun18  38:28 /usr/bin/transmission-daemon -f -g /path/to/config
    root     31859  1.0  9.3 8096668 1530164 ?     Ssl  01:38   6:08 /usr/bin/transmission-daemon -f -g /path/to/config
    root      4456  4.5 67.0 15763784 10955100 ?   Ssl  04:57  16:30 /usr/bin/transmission-daemon -f -g /path/to/config
    
    $ smem -k
      PID User     Command                         Swap      USS      PSS      RSS 
    31717 root     /usr/bin/transmission-daemo   611.9M   644.2M   644.7M   647.4M 
    31619 root     /usr/bin/transmission-daemo    46.7M   701.0M   702.1M   705.5M 
    31501 root     /usr/bin/transmission-daemo   181.6M   878.4M   878.8M   881.4M 
    31859 root     /usr/bin/transmission-daemo     1.2G     2.5G     2.5G     2.5G 
     4456 root     /usr/bin/transmission-daemo   374.2M     9.4G     9.4G     9.4G
    

    The instances each have 250, 250, 1000, 1000 and 5200 torrents. They will all compete use up all memory when given the chance (having only that instance running) regardless of the torrent count.

    Running on Debian Jessie.

    Linux 4.9.0-1-amd64 #1 SMP Debian 4.9.6-3 (2017-01-28) x86_64 GNU/Linux
    transmission-daemon 2.92 (14714)
    
    opened by Mechazawa 122
  • Error: Unable to save resume file: File name too long

    Error: Unable to save resume file: File name too long

    If I try add magnet link via transmission-daemon web-interface - I got error "Error: Unable to save resume file: File name too long". If I add torrent file, all ok. Deluge torrent client works fine with same magnet link. I think problem in long name of temporary torrent file, who made from magnet link.

    OS: Linux (raspbian arm32), Transmission-2.92 (2.84 have same problem), FS: Ext4

    [censored]

    Magnet link for test: [censored]

    bug scope:core 
    opened by one-quaker 74
  • Cannot connect to https trackers on macOS

    Cannot connect to https trackers on macOS

    Originally posted by GScottElshaw January 17, 2022

    An extremely longstanding bug on MacOS since 3.0, and still occurring in the nightlies, the inability to connect with certain trackers, most notably trackers using SSL. There are multiple references to this issue in a number of discussions here with a user on Monterey and elsewhere. I remember seeing this bug on Catalina, and possibly before, and it exists on Big Sur.

    Essentially, if the tracker has https, forget about connecting to it.

    Depending on the number of peers (I'm a former film lecturer and have extremely esoteric taste), I have to use a different client that can connect with these trackers, then open the torrent in Transmission for seeding. I'd love it if I could just use Transmission, and not just because I loathe the other clients.

    bug needs clarification scope:mac 
    opened by ckerr 49
  • Choice of Accent color may not be ideal on macOS

    Choice of Accent color may not be ideal on macOS

    Using Transmission-1459220b5b.dmg (build #7379). Bug observed with both M1 and Intel modes.

    My system tint (highlight color) is blue, so in macOS UI, all highlights are blue (items selected, in particular). But in Transmission this tint is not obeyed: UI uses red to highlight selected torrent, open tab, etc.

    Capture d’écran 2021-11-22 à 20 31 54

    and (torrent title obscured):

    Capture d’écran 2021-11-22 à 20 32 26 scope:mac pr welcome 
    opened by fxcoudert 48
  • Updated icon for ActionHover on MacOS

    Updated icon for ActionHover on MacOS

    A secondary change to, arguably, make the MacOS iconography more in keeping with the modern MacOS environment, and to make it clear that we're differentiating a menu item from a button.

    Complementary to #3178, they both signify to the user that additional options are available to the user from a menu. Unlike the global speed changes in #3178, this is for adjusting individual torrent speeds using an Apple SF Symbols icon (chevron.down.circle.fill).

    SCR-20220614-scb

    SCR-20220614-sby

    enhancement scope:mac 
    opened by GaryElshaw 43
  • New release

    New release

    Transmission 2.92 was release more than a year ago. There's been 242 commits since. Lots of improvements and fixes. It would be great if you could tag a new release. Thank you.

    opened by tmpfile 40
  • CVE-2018-5702: Mitigate dns rebinding attacks against daemon

    CVE-2018-5702: Mitigate dns rebinding attacks against daemon

    This issue was originally reported to the private transmission security list on November 30th 2017

    Transmission uses a client/server architecture, the user interface is the client and a daemon runs in the background managing the downloading, seeding, etc.

    Clients interact with the daemon using JSON RPC requests to a web server listening on port 9091. The daemon will only accept requests from localhost by default, but it's common to configure NAS devices to accept remote clients.

    Note: I regularly encounter users who don't accept that websites can access services on localhost or their intranet. These users understand that services bound to localhost are only accessible to software running on the local machine, and that their browser is running on the local machine - but somehow believe that accessing a website "transfers" execution somewhere else. It doesn't work like that, but this is a common source of confusion.

    A sample RPC session looks like this:

    $ curl -sI http://localhost:9091/transmission/rpc
    HTTP/1.1 409 Conflict
    Server: Transmission
    X-Transmission-Session-Id: JL641xTn2h53UsN6bVa0kJjRBLA6oX1Ayl06AJwuhHvSgE6H
    Date: Wed, 29 Nov 2017 21:37:41 GMT
    
    $ curl -H 'X-Transmission-Session-Id: JL641xTn2h53UsN6bVa0kJjRBLA6oX1Ayl06AJwuhHvSgE6H'  -d '{"method":"session-set","arguments":{"download-dir":"/home/user"}}' -si http://localhost:9091/transmission/rpc
    HTTP/1.1 200 OK
    Server: Transmission
    Content-Type: application/json; charset=UTF-8
    Date: Wed, 29 Nov 2017 21:38:57 GMT
    Content-Length: 36
    
    {"arguments":{},"result":"success"}
    

    As with all HTTP RPC schemes like this, any website can send requests to the daemon listening on localhost with XMLHttpRequest(), but the theory is they will be ignored because clients must prove they can read and set a specific header, X-Transmission-Session-Id.

    Unfortunately, this design doesn't work because of an attack called "DNS rebinding". Any website can simply create a dns name that they are authorized to communicate with, and then make it resolve to localhost.

    The attack works like this:

    1. A user visits http://attacker.com, which has an <iframe> to a subdomain the attacker controls.
    2. The attacker configures their DNS server to respond alternately with 127.0.0.1 and 123.123.123.123 (an address they control) with a very low TTL.
    3. When the browser resolves to 123.123.123.123, they serve HTML that waits for the DNS entry to expire (or force it to expire by flooding the cache with lookups), then they have permission to read and set headers.

    I have a domain I use for testing dns rebinding called rbndr.us, you can use this page to generate hostnames (source code is here):

    https://lock.cmpxchg8b.com/rebinder.html

    Here I want to alternate between 127.0.0.1 and 199.241.29.227, so I use 7f000001.c7f11de3.rbndr.us:

    $ host 7f000001.c7f11de3.rbndr.us
    7f000001.c7f11de3.rbndr.us has address 127.0.0.1
    $ host 7f000001.c7f11de3.rbndr.us
    7f000001.c7f11de3.rbndr.us has address 199.241.29.227
    $ host 7f000001.c7f11de3.rbndr.us
    7f000001.c7f11de3.rbndr.us has address 127.0.0.1
    

    Here you can see the resolution alternates between the two addresses I want (note that depending on caching it might take a while to switch, the TTL is set to minimum but some servers round up).

    I just wait for the cached response to expire, and then POST commands to the server.

    Exploitation is simple, you could set script-torrent-done-enabled and run any command, or set download-dir to /home/user/ and then upload a torrent for .bashrc.

    Here is my (simple) demo, it's slow, but could be made very fast:

    http://lock.cmpxchg8b.com/Asoquu3e.html

    I've verified it works on Chrome and Firefox on Windows and Linux (I tried Fedora and Ubuntu), I expect other platforms and browsers are affected. There are screenshots of how the attack is supposed to look below.

    This Pull Request mitigates this attack by requiring a host whitelist for requests that cannot be proven to be secure, but it can be disabled if a user does not want security. I think users might not be find it intuitive that servers on localhost or their intranet are exposed to the web, but hopefully they will read the warning.

    Here are some screenshots demonstrating the attack:

    Before the attack begins, the Download directory is set correctly: fedora 64-bit-2017-11-29-16-25-19

    Here is how the exploit looks: fedora 64-bit-2017-11-29-16-25-27

    Here is the exploit running: fedora 64-bit-2017-11-29-16-25-48

    The attack succeeds: fedora 64-bit-2017-11-29-16-30-12

    And the result: fedora 64-bit-2017-11-29-16-30-26

    scope:core type:fix 
    opened by taviso 39
  • Can't connect to HTTPS tracker.

    Can't connect to HTTPS tracker.

    Hi, I'm running Transmission on Windows 10 and Windows server 2016. And the issue are the same on both machines I can't connect to a tracker that have HTTPS connection after some googling I did find out that I'm not the only one.

    This is a big issue, I was forced to go over to Deluge instead but please fix this asap so I can go back to Transmission.

    bug os:windows scope:core 
    opened by NohaTech 36
  • transmission 2.92: doesnt support Humble Bundle torrents

    transmission 2.92: doesnt support Humble Bundle torrents

    Hello, this has been reported in Debian as http://bugs.debian.org/862063:

    While attempting to download a purchase from Humble Bundle, which provides .torrent download options, I stumbled across an issue triggered by the torrent file for MiniMetro. transmission-daemon's directory watch feature failed to load the file with a metadata error. Attempting to use transmission-show resulted in the same error:

    [2017-05-07 19:40:24.417] dinosaurpoloclub/MiniMetro-gamma19a-linux.tar.gz: Invalid metadata entry "path" Error parsing .torrent file "MiniMetro-gamma19a-linux.tar.gz.torrent"

    I was able to open the file using the Python library "bencode", and saw that there was no "path" metadata entry, and that the torrent was for a single file with the info/name entry "dinosaurpoloclub/MiniMetro-gamma19a-linux.tar.gz".

    Removing "dinosaurpoloclub/" from that entry was enough to allow the torrent to work. I did a bit of searching, and it looks like having a full path in the info/name entry is valid (although I've never seen it before, bep 3 doesn't seem to prohibit it)

    It may also be worth noting that the "dinosaurpoloclub" folder did not exist on my computer

    +

    As a clarification - editing the file allowed it to be loaded into transmission successfully. The download could not continue and logged the bug below. If I'm reading the standard correctly, the no-longer-matching hash of the info dictionary caused this.

    MiniMetro-gamma19a-linux.tar.gz Tracker error: "unregistered torrent" (torrent.c:581)

    +

    I had also submitted a ticket to Humble Bundle about the torrent file. They tested it with uTorrent and it sounds like it's working there:

    Hi there!

    I tested the torrent and was able to download it — I don't have a Linux machine available to test at the time, but what happens when you try to install it?

    I successfully torrented the file using uTorrent. Maybe you could give that client a try? You can also download the files directly via the direct downloads button — this game isn't too big, so that might be a good option.

    I'm happy to look into the torrent file further, but it might take a while to get a solution for you. Hopefully one of my proposed solutions is sufficient for you, but if you need me to look into this further, let me know and I'm happy to do so!

    -Dan Humble Bundle

    enhancement scope:core 
    opened by sandrotosi 36
  • default trackers

    default trackers

    Some torrents benefit greatly from a default list of trackers that speeds up the search for peers. This patch implements that (only for public torrents) for the daemon, web interface, GTK and Qt clients.

    The default trackers will be added to new public torrents and to existing ones, after a reload.

    The concept comes from this Deluge plugin: https://github.com/stefantalpalaru/deluge-default-trackers

    enhancement scope:daemon scope:gtk scope:qt scope:web scope:core 
    opened by stefantalpalaru 35
  • Add new svg icons for Qt client

    Add new svg icons for Qt client

    Fixes #3349.

    There are a number of changes here with new svg icons replacing the old png versions, and changes to the .qrc file for the svg files, but also an addition to include a turtle png icon for the Qt preferences window.

    The icons and their source/licensing information:

    1. Turtle icon: https://commons.wikimedia.org/wiki/File:491-turtle.svg
    2. Ratio/Yin Yang icon: https://commons.wikimedia.org/wiki/File:Yin_and_Yang_symbol.svg
    3. Lock icon: https://twemoji.maxcdn.com/ License: Code licensed under MIT. Graphics licensed under CC-BY
    4. Utilities icon: Mike’s PR: https://github.com/transmission/transmission/pull/2283

    The qrc file has been adapted to include the new turtle icon as a png because the svg version wasn't scaling correctly in the preferences window. In fact, the preferences window almost became just the turtle icon. This meant a small code change to PrefsDialog.ui.

    opened by GaryElshaw 34
  • Trying to clear search field using Command + Delete on search field (on macOS) deletes previously selected torrent

    Trying to clear search field using Command + Delete on search field (on macOS) deletes previously selected torrent

    1. Use search field to find a few torrents
    2. Select One of the torrents (to see some of its metadata for instance)
    3. Select the search field to search for a new torrent
    4. Press Command + Delete to clear the search field of its content -> Transmission suggests deleting the torrent, which is a bug as the search field was selected, but for some torrents that are "problematic" (file not available due to disconnected external hard drive for instance), there is no confirmation window, torrent is immediately deleted.
    opened by daf121 0
  • [20220805 868fc1ab7] bad directory permissions

    [20220805 868fc1ab7] bad directory permissions

    On UNIX/GNU/Linux transmisison-gtk, for some weeks (earlier than the partial git commit hash in topi) it's been saving all directories permission 777 which is bad because sometimes users don't want their directories writable by others in their group let alone not in their group (which you're also allowing)... the standard is 755.

    opened by dchmelik 0
  • Out-of-bounds write in parseBenc

    Out-of-bounds write in parseBenc

    This code:

    https://github.com/transmission/transmission/blob/4bc1589c5d0babee924f40dabea2c6cce3513a87/libtransmission/torrent-metainfo.cc#L458-L461

    Allocates enough room for n elements, but then proceeds to copy n elements AND the remaining data. So if std::size(value) is 21 (and sizeof(tr_sha1_digest_t) is 20), then it allocates 1 element (= 20 bytes), and copy 21 bytes to it.

    Test for this issue:

    diff --git a/tests/libtransmission/torrent-metainfo-test.cc b/tests/libtransmission/torrent-metainfo-test.cc
    index 2253d41..ee208ea 100644
    --- a/tests/libtransmission/torrent-metainfo-test.cc
    +++ b/tests/libtransmission/torrent-metainfo-test.cc
    @@ -255,5 +255,11 @@ TEST_F(TorrentMetainfoTest, GetRightStyleWebseedString)
         EXPECT_EQ("http://www.webseed-one.com/"sv, tm.webseed(0));
     }
     
    +TEST_F(TorrentMetainfoTest, parseBencOOBWrite)
    +{
    +    auto tm = tr_torrent_metainfo{};
    +    tm.parseBenc(tr_base64_decode("ZGg0OmluZm9kNjpwaWVjZXMzOkFpzQ=="));
    +}
    +
     } // namespace test
     } // namespace libtransmission
    

    Potential fix (it addresses the issue, but I don't know if it's compliant with the relevant specs):

    diff --git a/libtransmission/torrent-metainfo.cc b/libtransmission/torrent-metainfo.cc
    index cec210d..1885902 100644
    --- a/libtransmission/torrent-metainfo.cc
    +++ b/libtransmission/torrent-metainfo.cc
    @@ -455,10 +455,14 @@ struct MetainfoHandler final : public transmission::benc::BasicHandler<MaxBencDe
             }
             else if (pathIs(InfoKey, PiecesKey))
             {
    -            auto const n = std::size(value) / sizeof(tr_sha1_digest_t);
    -            tm_.pieces_.resize(n);
    -            std::copy_n(std::data(value), std::size(value), reinterpret_cast<char*>(std::data(tm_.pieces_)));
    -            tm_.pieces_offset_ = context.tokenSpan().first;
    +            if (std::size(value) % sizeof(tr_sha1_digest_t) == 0) {
    +                auto const n = std::size(value) / sizeof(tr_sha1_digest_t);
    +                tm_.pieces_.resize(n);
    +                std::copy_n(std::data(value), std::size(value), reinterpret_cast<char*>(std::data(tm_.pieces_)));
    +                tm_.pieces_offset_ = context.tokenSpan().first;
    +            } else {
    +                unhandled = true;
    +            }
             }
             else if (pathStartsWith(PieceLayersKey))
             {
    
    scope:core pr welcome bug:regression 
    opened by guidovranken 3
  • Duplicate app instances on Windows

    Duplicate app instances on Windows

    When I open a torrent, a magnet link or simply double tap on the Transmission app on the desktop, it launches a duplicate instance and corrupts my data. Any way to prevent this?

    I'm using the latest nightly build as of 2022-08-05

    opened by rgaufman 1
  • Releases(3.00)
    • 3.00(May 22, 2020)

      All Platforms

      • Allow the RPC server to listen on an IPv6 address (#161)
      • Change TR_CURL_SSL_VERIFY to TR_CURL_SSL_NO_VERIFY and enable verification by default (#334)
      • Go back to using hash as base name for resume and torrent files (those stored in configuration directory) (#122)
      • Handle "fields" argument in "session-get" RPC request; if "fields" array is present in arguments, only return session fields specified; otherwise return all the fields as before
      • Limit the number of incorrect authentication attempts in embedded web server to 100 to prevent brute-force attacks (#371)
      • Set idle seed limit range to 1..40320 (4 weeks tops) in all clients (#212)
      • Add Peer ID for Xfplay, PicoTorrent, Free Download Manager, Folx, Baidu Netdisk torrent clients (#256, #285, #355, #363, #386)
      • Announce INT64_MAX as size left if the value is unknown (helps with e.g. Amazon S3 trackers) (#250)
      • Add TCP_FASTOPEN support (should result in slight speedup) (#184)
      • Improve ToS handling on IPv6 connections (#128, #341, #360, #692, #737)
      • Abort handshake if establishing DH shared secret fails (leads to crash) (#27)
      • Don't switch trackers while announcing (leads to crash) (#297)
      • Improve completion scripts execution and error handling; add support for .cmd and .bat files on Windows (#405)
      • Maintain a "session ID" file (in temporary directory) to better detect whether session is local or remote; return the ID as part of "session-get" response (TRAC-5348, #861)
      • Change torrent location even if no data move is needed (#35)
      • Support CIDR-notated blocklists (#230, #741)
      • Update the resume file before running scripts (#825)
      • Make multiscrape limits adaptive (#837)
      • Add labels support to libtransmission and transmission-remote (#822)
      • Parse session-id header case-insensitively (#765)
      • Sanitize suspicious path components instead of rejecting them (#62, #294)
      • Load CA certs from system store on Windows / OpenSSL (#446)
      • Add support for mbedtls (formely polarssl) and wolfssl (formely cyassl), LibreSSL (#115, #116, #284, #486, #524, #570)
      • Fix building against OpenSSL 1.1.0+ (#24)
      • Fix quota support for uClibc-ng 1.0.18+ and DragonFly BSD (#42, #58, #312)
      • Fix a number of memory leaks (magnet loading, session shutdown, bencoded data parsing) (#56)
      • Bump miniupnpc version to 2.0.20170509 (#347)
      • CMake-related improvements (Ninja generator, libappindicator, systemd, Solaris and macOS) (#72, #96, #117, #118, #133, #191)
      • Switch to submodules to manage (most of) third-party dependencies
      • Fail installation on Windows if UCRT is not installed

      Mac Client

      • Bump minimum macOS version to 10.10
      • Dark Mode support (#644, #722, #757, #779, #788)
      • Remove Growl support, notification center is always used (#387)
      • Fix autoupdate on High Sierra and up by bumping the Sparkle version (#121, #600)
      • Transition to ARC (#336)
      • Use proper UTF-8 encoding (with macOS-specific normalization) when setting download/incomplete directory and completion script paths (#11)
      • Fix uncaught exception when dragging multiple items between groups (#51)
      • Add flat variants of status icons for message log (#134)
      • Optimize image resources size (#304, #429)
      • Update file icon when file name changes (#37)
      • Update translations

      GTK+ Client

      • Add queue up/down hotkeys (#158)
      • Modernize the .desktop file (#162)
      • Add AppData file (#224)
      • Add symbolic icon variant for the Gnome top bar and when the high contrast theme is in use (#414, #449)
      • Update file icon when its name changes (#37)
      • Switch from intltool to gettext for translations (#584, #647)
      • Update translations, add new translations for Portuguese (Portugal)

      Qt Client

      • Bump minimum Qt version to 5.2
      • Fix dropping .torrent files into main window on Windows (#269)
      • Fix prepending of drive letter to various user-selected paths on Windows (#236, #307, #404, #437, #699, #723, #877)
      • Fix sorting by progress in presence of magnet transfers (#234)
      • Fix .torrent file trashing upon addition (#262)
      • Add queue up/down hotkeys (#158)
      • Reduce torrent properties (file tree) memory usage
      • Display tooltips in torrent properties (file tree) in case the names don't fit (#411)
      • Improve UI look on hi-dpi displays (YMMV)
      • Use session ID (if available) to check if session is local or not (#861)
      • Use default (instead of system) locale to be more flexible (#130)
      • Modernize the .desktop file (#162)
      • Update translations, add new translations for Afrikaans, Catalan, Danish, Greek, Norwegian Bokmål, Slovenian

      Daemon

      • Use libsystemd instead of libsystemd-daemon (TRAC-5921)
      • Harden transmission-daemon.service by disallowing privileges elevation (#795)
      • Fix exit code to be zero when dumping settings (#487)

      Web Client

      • Fix tracker error XSS in inspector (CVE-?)
      • Fix performance issues due to improper use of setInterval() for UI refresh (TRAC-6031)
      • Fix recognition of https:// links in comments field (#41, #180)
      • Fix torrent list style in Google Chrome 59+ (#384)
      • Show ETA in compact view on non-mobile devices (#146)
      • Show upload file button on mobile devices (#320, #431, #956)
      • Add keyboard hotkeys for web interface (#351)
      • Disable autocompletion in torrent URL field (#367)

      Utils

      • Prevent crash in transmission-show displaying torrents with invalid creation date (#609)
      • Handle IPv6 RPC addresses in transmission-remote (#247)
      • Add --unsorted option to transmission-show (#767)
      • Widen the torrent-id column in transmission-remote for cleaner formatting (#840)

      Code Signing Policy

      Source code(tar.gz)
      Source code(zip)
      Transmission-3.00-dsym.zip(1.58 MB)
      transmission-3.00-x64-pdb.zip(46.02 MB)
      transmission-3.00-x64.msi(15.55 MB)
      transmission-3.00-x86-pdb.zip(45.18 MB)
      transmission-3.00-x86.msi(13.82 MB)
      Transmission-3.00.dmg(5.43 MB)
      transmission-3.00.tar.xz(3.17 MB)
    • 2.94(May 1, 2018)

      All Platforms

      • Fix building against LibreSSL (#284, #486, #570)
      • Fix building against mbedTLS (#115, #528)
      • Fix torrents ETA calculation (#522)
      • Fix cross-compilation issues caused by miniupnpc configuration test (#475)

      Qt Client

      • Fix bad downloaded percentage in DetailsDialog (#547)

      Web Client

      • Fix tracker error XSS in inspector (CVE pending; found by Rory McNamara of Gotham Digital Science)
      • Fix torrent name HTML-escaping in trackers inspector tab
      Source code(tar.gz)
      Source code(zip)
    • 2.93(Jan 24, 2018)

      All Platforms

      • Fix CVE-2018-5702 (#468)
      • Fix crash on handshake if establishing DH shared secret fails (#27)
      • Fix crash when switching to next tracker during announcement (#297)
      • Fix potential issue during password salt extraction in OOM situation (#141)
      • Workaround glib_DEFUN- and glib_REQUIRE-related configuration issue (#215)
      • Fix building against OpenSSL 1.1.0+ (#24)

      Mac Client

      • Fix uncaught exception when dragging multiple items between groups (#51)
      • Don't hard-code libcrypto version to 0.9.8 in Xcode project (#71)
      Source code(tar.gz)
      Source code(zip)
    • 2.91(Apr 9, 2016)

      All Platforms

      • Fix Makefile.am to include Windows patches into source archive
      • Fix miniupnpc script to handle spaces and other special chars in paths

      Mac Client

      • Prevent crash during group rules removal in some cases
      • Fix failure to remove seeding completion notifications from notification center
      • Show main window and scroll to torrent on notification click
      • Fix issue on Yosemite where peers view didn't occupy all the available space when web seed view was hidden

      Qt Client

      • Fix existing running instance detection and torrents delegation when using DBus

      Daemon

      • Fix building on Windows x86
      • Add --blocklist-update argument description to transmission-remote man page
      • Use -rad as short form of --remove-and-delete option in transmission-remote
      Source code(tar.gz)
      Source code(zip)
    • 2.90(Apr 9, 2016)

      All Platforms

      • Fix renaming torrent files with common prefix
      • Fix some more thread safety bugs in the tr_list datatype
      • Fix infinite loop when removing torrent data
      • Add support for CyaSSL/WolfSSL and PolarSSL cryptographic backends; bump OpenSSL minimum to v0.9.7
      • Initial CMake build system support
      • Many improvements to support Windows builds with MSVS and MinGW; drop XP/2003 support, only Vista and up now
      • Allow building against system UTP and DHT libraries
      • Fix several memory leaks and buffer overflows
      • Support miniupnpc API v14
      • Fix "prefetch-enabled" value type in settings.json (boolean instead of integer)
      • Fix some issues discovered by static analysis (cppcheck, coverity)
      • Fix invalid JSON encoding for non-printable characters
      • Fix multi-threaded locale use when encoding/decoding JSON data
      • Fix encrypted communication with libevent 2.1+
      • Prevent completed pieces modification by webseeds
      • Require absolute paths in RPC requests
      • Fix and unify torrent origin display in GTK+, Qt and web clients
      • Fix crash on session shutdown (evdns_getaddrinfo_cancel)
      • Retry if RPC server fails to bind to specified address
      • Improve error checking on metadata retrieval
      • Improve UTF-8 validity checking (merge changes from LLVM)
      • Don't build transmission-cli by default (it's long deprecated)

      Mac Client

      • UI fixes for OS X 10.9+
      • Trim potential URIs from clipboard
      • Allow downloading files from http servers (not https) on OS X 10.11+
      • Change Sparkle Update URL to use HTTPS instead of HTTP (addresses Sparkle vulnerability)
      • Fix global options popover layout
      • Fix building with Xcode 7+
      • Drop OS X 10.6 support

      GTK+ Client

      • Fix overshoot and undershoot indicators display with GTK+ 3.16+ in main window
      • Don't require DISPLAY if started with --version argument

      Qt Client

      • Improve performance in Torrent Properties dialog for torrents with lots of files
      • Prevent entering file renaming mode with mouse double-click
      • Add context menu on files tab of Torrent Properties dialog resembling that of Mac client
      • Remove torrent file from watch directory even if "show options dialog" is not set
      • Use theme-provided icons in system tray and About dialog
      • Fix initial watch directory scan
      • Improve filter bar look and feel; lots of other small visual fixes; RTL layout fixes
      • Show message to the user when duplicate torrent is being added
      • Improve magnets handling in main window
      • Display notifications via tray icon if D-Bus is not available
      • Show notice on top of filtered torrents list; clear whole filter on notice double-click
      • Add proper compiler flags to indicate C++11 use
      • Fix translation files loading
      • Add Chinese (China), German, Indonesian, Italian (Italy), Korean, Polish (Poland), Ukrainian translations; update existing translations

      Daemon

      • Run as service on Windows when in background mode
      • Rework directory watching, add support for native mechanisms on BSD/Darwin (kqueue) and Windows (ReadDirectoryChanges)
      • Don't make assumptions of remote path validity in transmission-remote

      Web Client

      • Content Security Policy enhancements
      • Enable "resume now" for queued torrents
      • Mark appropriate fields in preferences dialog as HTML5 number fields
      • Update to jQuery 1.11.2, jQueryUI 1.11.4; use jQueryUI menus instead of custom ones
      Source code(tar.gz)
      Source code(zip)
    • 2.84(Apr 9, 2016)

    • 2.83(Apr 9, 2016)

      All Platforms

      • Licensing change: the GNU GPLv2 code can now be used under GNU GPL v2 or v3
      • Fix network hanging issues that could occur when both UTP and DHT were enabled
      • Fix 2.82 file descriptor leak when importing a blocklist
      • Disallow torrents that contain "/../" in the path
      • Fix 2.82 bug that didn't retain peers between sessions
      • Fix potential dangling memory error in UDP tracker DNS lookups
      • Remember a torrent's "queued" state between Transmission sessions
      • Updated third party libraries: DHT updated to v0.22; miniupnpc updated to v1.9
      • Autoconf script fixes: better detection of ccache, minupnpc
      • Fix the X-Transmission-Session-Id header to be valid with the SPDY protocol
      • Fix thread safety bugs in the tr_list datatype
      • When determining free disk space on NetBSD>=6, support its Quota feature
      • Windows portability improvements

      Mac Client

      • Share option in File menu and context menu
      • Show all torrents when the filter bar is hidden
      • Show zero-byte files correctly
      • Coalesce multiple Speed Limit Auto Enabled/Disabled notifications
      • Turkish localization
      • Removed Brazilian Portuguese localization because of lack of localizer (European Portuguese localization remains)

      GTK+ Client

      • Fix threading issue on shutdown

      Qt Client

      • Fix toggle-downloading-by-pressing-spacebar in the file list
      • Fix "Open URL" crash from dangling pointer
      • Support launching downloaded files from inside Transmission
      • On Windows, use native Windows icons
      • Improved network status info and tooltip in the status bar
      • Fix "Open Torrent" dialog crash in Qt 5.2

      Daemon

      • On systemd systems, fix config reloading via 'systemctl reload'
      • Use libevent's event loop
      • Fix discrepancy in curl SSL setup between tr-daemon and tr-remote
      • Fix broken OS X build

      Web Client

      • Support file renaming in the web client
      • Fix incorrect torrent state being displayed for magnet links
      • Make URLs in the torrent's comment field clickable (and sanitize them to prevent cross-scripting)
      Source code(tar.gz)
      Source code(zip)
    • 2.82(Apr 9, 2016)

      All Platforms

      • Fix webseed crash
      • Fix crash when adding UDP trackers whose host's canonical name couldn't be found
      • Fix crash when sending handshakes to some peers immediately after adding a magnet link
      • Fix crash when parsing incoming encrypted handshakes when the user is removing the related torrent
      • Add safeguard to prevent zombie processes after running a script when a torrent finishes downloading
      • Fix "bad file descriptor" error
      • Queued torrents no longer show up as paused after exiting & restarting
      • Fix 2.81 compilation error on OpenBSD
      • Don't misidentify Tixati as BitTornado

      Mac Client

      • Fix bug that had slow download speeds until editing preferences

      GTK+ Client

      • Fix crash that occurred in some cases after using Torrent > Set Location
      • Fix crash where on_app_exit() got called twice in a row
      • Fix 2.81 compilation error on older versions of glib
      • Can now open folders that have a '#' in their names
      • Silence gobject warning when updating a blocklist from URL

      Qt Client

      • Qt 5 support

      Web Client

      • Fix syntax error in index.html's meta name="viewport"
      • Fix file uploading issue in Internet Explorer 11
      Source code(tar.gz)
      Source code(zip)
    • 2.81(Apr 9, 2016)

      All Platforms

      • Fix 2.80 bug that showed the incorrect status for some peers
      • Better handling of announce errors returned by some trackers
      • Fix compilation error on Solaris

      Mac Client

      • Fix 2.80 crash when removing a torrent when its seed ratio or idle limit is reached
      • Fix crash when pausing some torrents
      • Fix 2.80 icon display on Mavericks

      GTK+ Client

      • Fix minor memory leaks
      • Remove OnlyShowIn= from the .desktop file

      Qt Client

      • Remove OnlyShowIn= from the .desktop file

      Daemon

      • Change the systemd script to start Transmission after the network's initialized

      Web Client

      • Slightly better compression of png files
      Source code(tar.gz)
      Source code(zip)
    • 2.80(Apr 9, 2016)

      All Platforms

      • Support renaming a transfer's files and folders
      • Remove the most frequent thread locks in libtransmission (ie, fewer beachballs)
      • Show the free disk space available when adding torrent
      • Faster reading and parsing of local data files
      • Better use of the OS's filesystem cache
      • Lengthen the prefetch cache for data sent to peers
      • Other small speedups
      • Replace the previous JSON parser with jsonsl to resolve DFSG licensing issue
      • Fix fails-to-build when compiling with -Werror=format-security
      • Improved unit tests in libtransmission
      • Tarballs are now released only in .xz format

      Mac Client

      • Use VDKQueue for watching for torrent files

      GTK+ Client

      • Simplify the tracker filter pulldown's interface (now matches the Qt client)
      • Synced preferences text & shortcuts
      • Remove deprecated calls to gdk_threads_enter()
      • Silence a handful of console warnings

      Qt Client

      • More efficient updates when receiving information from the server
      • Add an option to play a sound when a torrent finishes downloading
      • Add an option to start up iconified into the notification area
      • Fix an issue with the tray icon preventing hibernation/logout
      • Other CPU speedups
      • Open the correct folder when clicking on single-file torrents
      • Synced preferences text & shortcuts
      • Fix non Latin-1 unit strings

      Daemon

      • Add support for specifying recently-active torrents in transmission-remote

      Web Client

      • Extend the cookie lifespan so that settings like sort order don't get lost

      Utils

      • Support user-defined piece sizes in transmission-create
      Source code(tar.gz)
      Source code(zip)
    • 2.77(Apr 9, 2016)

      All Platforms

      • Fix 2.75 regression that broke JSON parsing of real numbers in locales that don't use '.' as a decimal separator
      • Don't invalidate the OS's file cache when closing files
      • Fix overflow error when setting speed limits above ~8589 kB/s
      • Generated magnet links didn't include webseeds
      • Fix minor memory leaks when using webseeds

      GTK+ Client

      • Minor pluralization fixes in the UI
      • Fix folder mis-selection issue in the Preferences dialog
      • Fix GTK+ console warnings on shutdown

      Qt Client

      • Fix non Latin-1 symbol issue when showing file transfer speeds
      • Fix issue when creating new torrents with multiple trackers
      • Fix lost text selection in the properties dialog's 'comment' field

      Daemon

      • Fix documentation errors in the spec and manpages

      Web Client

      • Fix minor DOM leak

      CLI

      • Fix transmission-cli failure when the download directory doesn't exist
      Source code(tar.gz)
      Source code(zip)
    • 2.76(Apr 9, 2016)

      All Platforms

      • Better error logging when user-provided scripts can't be executed
      • The "Time Remaining" property wasn't set for torrents with webseeds but no peers
      • Fix rare error that created a directory name "$HOME"

      GTK+ Client

      • Fix sort-by-age regression introduced in 2.74
      • The "Edit Trackers" window didn't resize properly due to a 2.70 regression
      • Raise the main window when presenting it from an App Indicator

      Qt Client

      • Add magnet link support to transmission-qt.desktop
      • Fix notification area bug that inhibited logouts & desktop hibernation
      • Use the "video" icon when the torrent is an mkv or mp4 file
      • Toggling the "Append '.part' to incomplete files' names" had no effect
      • Fix display of the torrent name in the Torrent Options dialog
      • Fix cursor point bug in the filterbar's entry field
      • Fix crash when adding a magnet link when Transmission was only visible in the system tray
      • Fix free-memory-read error on shutdown

      Daemon

      • Better watchdir support
      • Documentation fixes in transmission-remote's manpage

      Web Client

      • Fix indentation of the torrent list and toolbar buttons on mobile devices

      CLI

      • If the Download directory doesn't exist, try to create it instead of exiting
      Source code(tar.gz)
      Source code(zip)
    • 2.75(Apr 9, 2016)

    • 2.74(Apr 9, 2016)

      All Platforms

      • Fix a bug that prevented IPv6 addresses from being saved in dht.dat
      • Better handling of magnet links that contain 'tr.x=' parameters
      • Add filtering of addresses used for uTP peer connections
      • Fix detection of whether or not a peer supports uTP connections

      Mac

      • Auto-grouping won't apply until torrents are demagnetized
      • Tweak the inspector's and add window's file lists to avoid auto-hiding scrollbars overlapping the priority controls
      • Fix potential crash when downloading and seeding complete at the same time
      • Fix bug where stopped torrents might start when waking the computer from sleep

      Web Client

      • Fix a multi-file selection bug
      • Fix bug where the upload and download arrows and rates would not appear for downloading torrents
      • Fix bug when displaying the tracker list
      Source code(tar.gz)
      Source code(zip)
    • 2.73(Apr 9, 2016)

    • 2.72(Apr 9, 2016)

      All Platforms

      • Fix crash when adding magnet links with malformed webseeds
      • Fix handling of magnet links' webseed URLs that contain whitespace
      • Fix remaining time estimates of magnet links that have webseeds
      • Show the webseed count in the torrent list when downloading from webseeds

      Mac

      • When possible allow automatic switching to the integrated GPU on dual-GPU machines
      • Include seeding-complete transfers in the badged count on the Dock icon

      GTK+

      • When adding torrents by URL from the clipboard, handle whitespace in the link

      Qt

      • Fix dialog memory leaks

      Web Client

      • Minor interface fixes
      Source code(tar.gz)
      Source code(zip)
    • 2.71(Apr 9, 2016)

    • 2.70(Apr 9, 2016)

      All Platforms

      • Improved speed with the µTP protocol
      • Fix bug that caused some incoming encrypted peer connections to fail
      • Fix bugs with the speed limit scheduler
      • Fix crasher with magnet links

      Mac

      • Notification Center support on Mountain Lion
      • Torrent files can be previewed with Quick Look in the Finder
      • Add an option to remove transfers when seeding completes
      • Fix displaying the Web Client with Bonjour
      • Fix bugs with Time Machine exclusions
      • Other minor interface tweaks and bug fixes
      • Removed Simplified Chinese localization because of lack of localizer

      GTK+

      • Require GTK+ 3.4

      Qt

      • Control speed limit from the icon tray
      • Improved behavior when clicking on torrents in the torrent list
      • Fix bug where torrent files were not deleted
      • Fix bug with unicode characters in the default location

      Web Client

      • The file inspector tab displays files nested under directories
      • Improved scrolling on iPad
      • Fix incorrectly rendered characters
      • Fix bug involving attempts to post notifications without permission
      Source code(tar.gz)
      Source code(zip)
    • 2.61(Sep 4, 2016)

      Mac

      • Fix crash when creating a torrent file on Lion or newer

      GTK+

      • Support startup notification
      • Require GTK+ 3

      Qt

      • Fix bug when opening the web client via the Preferences dialog
      • Better opening of magnet links
      • The Torrent File list now handles very long lists faster
      • Fix i18n problem introduced in 2.60

      Web Client

      • Close potential cross-scripting vulnerability from malicious torrent files

      Utils

      • Add magnet link generation to the transmission-show command line tool
      Source code(tar.gz)
      Source code(zip)
    • 2.60(Sep 4, 2016)

      All Platforms

      • Fix issues when adding magnet links
      • Improved scraping behavior for certain trackers
      • Fix bug where cleared statistics might not save
      • Updated versions of miniupnpc and libuTP
      • Fixed compilation issues with Solaris and FreeBSD
      • Other minor fixes

      Mac

      • Ready for Gatekeeper on Mountain Lion
      • Retina graphics
      • Add a filter and select all/deselect all buttons to the add window
      • Support Lion's window restoration for several windows

      Web Client

      • Notification of downloading and seeding completion (requires browser support of notifications)
      • Re-add select all and deselect all buttons to the file inspector tab

      Qt

      • Add Basque translation
      Source code(tar.gz)
      Source code(zip)
    • 2.52(Sep 4, 2016)

      All Platforms

      • Fix bug with zero termination of multiscrape strings
      • Update the bundled libnatpmp and miniupnp port forwarding libraries

      Mac

      • Add select all and deselect all buttons to the file inspector tab
      • Minor interface tweaks and bug fixes
      • Danish localization

      GTK+

      • Fix minor bug in Ubuntu app indicator support
      Source code(tar.gz)
      Source code(zip)
    • 2.51(Sep 4, 2016)

      All Platforms

      • Update the bundled libnatpmp and miniupnp port forwarding libraries
      • Add environment variable options to have libcurl verify SSL certs
      • Support user-specified CXX environment variables during compile time

      Mac

      • Raise the allowed limits for many configuration options
      • Fix regression that ignored user-specified TRANSMISSION_HOME environment

      GTK+

      • Fix crash when adding torrents on systems without G_USER_DIRECTORY_DOWNLOAD
      • Honor the notification sound setting
      • Add a tooltip to files in the torrents' file list
      • Fix broken handling of the Cancel button in the "Open URL" dialog
      • Improve support for Gnome Shell and Unity
      • Catch SIGTERM instead of SIGKILL

      Qt

      • Progress bar colors are now similar to the Mac and Web clients'
      • Improve the "Open Folder" behaviour

      Web Client

      • Fix global seed ratio progress bars
      • Fix sometimes-incorrect ratio being displayed in the inspector
      • If multiple torrents are selected, show the aggregate info in the inspector
      • Upgrade to jQuery 1.7.2

      Daemon

      • Show magnet link information in transmission-remote -i
      Source code(tar.gz)
      Source code(zip)
    • 2.50(Sep 4, 2016)

      All Platforms

      • Fix crash when adding some magnet links
      • Improved support for downloading webseeds with large files
      • Gracefully handle incorrectly-compressed data from webseed downloads
      • Fairer bandwidth distribution across connected peers
      • Use less CPU when calculating undownloaded portions of large torrents
      • Use the Selection Algorithm, rather than sorting, to select peer candidates
      • Use base-10 units when displaying bandwidth speed and disk space
      • If the OS has its own copy of natpmp, prefer it over our bundled version
      • Fix Fails-To-Build error on Solaris 10 from use of mkdtemp()
      • Fix Fails-To-Build error on FreeBSD from use of alloca()
      • Fix Fails-To-Build error when building without a C++ compiler for libuTP

      Mac

      • Requires Mac OS X 10.6 Snow Leopard or newer
      • Animated rows in the main window (Lion only)
      • Quarantine downloaded files (to protect against malware)
      • The inspector no longer floats above other windows (by popular demand)
      • Mist notifications: basic notification support for users without Growl
      • Support pasting a torrent file URL into the main window (Lion only)
      • Minor interface tweaks and bug fixes

      GTK+

      • Fix regression that broke the "--minimized" command-line argument
      • Instead of notify-send, use the org.freedesktop.Notifications DBus API
      • Fix a handful of small memory leaks

      Qt

      • Fix FTB when building without libuTP support on Debian

      Web Client

      • Filtering by state and tracker
      • Sorting by size
      • Larger, easier-to-press toolbar buttons
      • Fix the torrent size and time remaining in the inspector's details tab
      • Bundle jQuery and the stylesheets to avoid third-party CDNs
      • Upgrade to jQuery 1.7.1
      • Fix runtime errors in IE 8, IE 9, and Opera
      • Revise CSS stylesheets to use SASS
      • Minor interface tweaks

      Daemon

      • Fix corrupted status string in transmission-remote
      Source code(tar.gz)
      Source code(zip)
    • 2.42(Sep 4, 2016)

      All Platforms

      • Fix error connecting to UDP trackers from big-endian computers
      • Fix RPC error when editing UDP trackers
      • Fix build failure when a C++ compiler is not installed

      Mac

      • Fix a potential crash on 10.5 Leopard
      • Fix bugs with the tracker and file inspector tables

      GTK+

      • Support GTK+ 3.2
      • Fix crasher on systems not running DBus

      Qt

      • Updated Lithuanian translation

      Web Client

      • Fix bug which broke Opera support
      Source code(tar.gz)
      Source code(zip)
    • 2.41(Sep 4, 2016)

    • 2.40(Sep 4, 2016)

      All Platforms

      • Torrent queuing
      • Improved webseed support
      • Fix crash when removing a magnetized transfer
      • Fix adding transfers over RPC when a subfolder does not exist
      • Other minor fixes

      Mac

      • Lion: Use popovers for the global and per-torrent action menus
      • Lion: Animations in the inspector's file list and the message window
      • Support sorting transfers by size
      • No longer keep track of recently opened torrent files
      • Apply group locations when adding transfers through the web client/RPC
      • Minor interface tweaks and behavior adjustments

      GTK+

      • Add GTK+ 3 support
      • Make popup notification and system sounds system-configurable
      • Add a settings option to hard-delete files instead of using the recycle bin
      • Raise the minimum library requirements for GTK+ to 2.22 and glib to 2.28

      Qt

      • Add popup notification for finished torrents
      • Fix non-UTF-8 display issue in the "New Torrent" dialog

      Daemon

      • SSL support in transmission-remote

      Web Client

      • Speed improvements
      • Add filtering by tracker
      • Allow preference changes on mobile devices
      • Allow compact view on mobile devices
      • Stop ratio functionality
      • Compact view interface improvements

      Utils

      • Fix transmission-edit bug when adding a tracker to a single-tracker torrent
      • Fix transmission-create bug when specifying a directory with a leading "./"
      Source code(tar.gz)
      Source code(zip)
    Owner
    Transmission
    A Fast, Easy, and Free BitTorrent Client
    Transmission
    qBittorrent - A BitTorrent client in Qt

    qBittorrent - A BitTorrent client in Qt Description: qBittorrent is a bittorrent client programmed in C++ / Qt that uses libtorrent (sometimes called

    qBittorrent project 16.6k Jul 28, 2022
    Tool for inspecting, creating and editing BitTorrent metafiles.

    A commandline tool for creating, inspecting and modifying bittorrent metafiles.

    null 103 Jul 27, 2022
    BitTorrent DHT library

    The files dht.c and dht.h implement the variant of the Kademlia Distributed Hash Table (DHT) used in the Bittorrent network (``mainline'' variant). T

    Juliusz Chroboczek 639 Jul 27, 2022
    an efficient feature complete C++ bittorrent implementation

    libtorrent is an open source C++ library implementing the BitTorrent protocol, along with most popular extensions, making it suitable for real world d

    Arvid Norberg 4k Aug 5, 2022
    libTorrent BitTorrent library

    LibTorrent Copyright (C) 2005-2014, Jari Sundell LICENSE GNU GPL, see COPYING. "libtorrent/src/utils/sha_fast.{cc,h}" is originally from the Mozil

    Jari Sundell 836 Jul 23, 2022
    Transmission is a fast, easy, and free BitTorrent client

    About Transmission is a fast, easy, and free BitTorrent client. It comes in several flavors: A native Mac OS X GUI application GTK+ and Qt GUI applica

    Bread 74 Aug 6, 2022
    qBittorrent - A BitTorrent client in Qt

    qBittorrent - A BitTorrent client in Qt Description: qBittorrent is a bittorrent client programmed in C++ / Qt that uses libtorrent (sometimes called

    qBittorrent project 16.6k Jul 28, 2022
    STM32 examples for USART using DMA for efficient RX and TX transmission

    STM32 UART DMA RX and TX This application note contains explanation with examples for 2 distinct topics: Data reception with UART and DMA when applica

    Tilen Majerle 729 Jul 28, 2022
    Webdav-client-cpp - C++ WebDAV Client provides easy and convenient to work with WebDAV-servers.

    WebDAV Client Package WebDAV Client provides easy and convenient to work with WebDAV-servers: Yandex.Disk Dropbox Google Drive Box 4shared ownCloud ..

    Cloud Polis 102 Jul 10, 2022
    Tool for inspecting, creating and editing BitTorrent metafiles.

    A commandline tool for creating, inspecting and modifying bittorrent metafiles.

    null 103 Jul 27, 2022
    This is a collection of tools for creating and manipulating BitTorrent v2 torrent files

    torrent tools This is a collection of tools for creating and manipulating BitTorrent v2 torrent files. torrent-new can create hybrid torrents, but the

    Arvid Norberg 8 Jun 1, 2022
    Ole Christian Eidheim 737 Aug 6, 2022
    BitTorrent DHT library

    The files dht.c and dht.h implement the variant of the Kademlia Distributed Hash Table (DHT) used in the Bittorrent network (``mainline'' variant). T

    Juliusz Chroboczek 639 Jul 27, 2022
    an efficient feature complete C++ bittorrent implementation

    libtorrent is an open source C++ library implementing the BitTorrent protocol, along with most popular extensions, making it suitable for real world d

    Arvid Norberg 4k Aug 5, 2022
    libTorrent BitTorrent library

    LibTorrent Copyright (C) 2005-2014, Jari Sundell LICENSE GNU GPL, see COPYING. "libtorrent/src/utils/sha_fast.{cc,h}" is originally from the Mozil

    Jari Sundell 836 Jul 23, 2022
    A bittorrent plugin for VLC.

    vlc-bittorrent (Bittorrent plugin for VLC) What is this? With vlc-bittorrent, you can open a .torrent file or magnet link with VLC and stream any medi

    Johan Gunnarsson 319 Jul 27, 2022
    Triton Python and C++ client libraries and example, and client examples for go, java and scala.

    Triton Client Libraries and Examples To simplify communication with Triton, the Triton project provides several client libraries and examples of how t

    Triton Inference Server 156 Jul 22, 2022
    Handcrafted Flutter application well organized and easy to understand and easy to use.

    Handcrafted Flutter application well organized and easy to understand and easy to use.

    Justin Dah-kenangnon 2 Feb 1, 2022
    Simple-MySQL-API is a free and easy API to manipulate MySQL with C99 and GCC compiler under GNU/Linux OS.

    Simple-MySQL-API is a free and easy API to manipulate MySQL with C99 and GCC compiler under GNU/Linux OS.

    Neptune 7 Apr 24, 2022
    A FREE Windows C development course where we will learn the Win32API and reverse engineer each step utilizing IDA Free in both an x86 and x64 environment.

    FREE Reverse Engineering Self-Study Course HERE Hacking Windows The book and code repo for the FREE Hacking Windows book by Kevin Thomas. FREE Book Do

    Kevin Thomas 996 Aug 1, 2022
    An SFTP client shared library (dll/so/dylib) with bindings and classes for C++, Delphi and Free Pascal based on PuTTY

    TGPuttyLib A shared library / DLL with Delphi and C++ bindings based on PuTTY, for Windows, macOS, and Linux. The new TGPuttyLib SFTP Library is a DLL

    Tobias Giesen 65 Jul 8, 2022
    A Powerful, Easy-to-Use, Compact, Cross-Platform and Installation-Free Crypto Tool. 一个强大,易用,小巧,跨平台且免安装的加密解密签名工具。

    GpgFrontend GpgFrontend is a Powerful, Easy-to-Use, Compact, Cross-Platform, and Installation-Free OpenPGP Crypto Tool. By using GpgFrontend, you can

    Saturn&Eric 151 Aug 4, 2022
    A set of open c++ game development tools that are lightweight, easy-to-integrate and free to use. Currently hosting a magicavoxel .vox full scene loader.

    open game tools Open game tools is a set of unencumbered, free, lightweight, easy-to-integrate tools for use in game development. So far it contains:

    null 275 Jul 28, 2022
    A bounded single-producer single-consumer wait-free and lock-free queue written in C++11

    SPSCQueue.h A single producer single consumer wait-free and lock-free fixed size queue written in C++11. Example SPSCQueue<int> q(2); auto t = std::th

    Erik Rigtorp 504 Jul 19, 2022
    Awesome-lockfree - A collection of resources on wait-free and lock-free programming

    Awesome Lock-Free A collection of resources on wait-free and lock-free programming. ?? ?? ?? Even better resource from MattPD: C++ links: atomics, loc

    Erik Rigtorp 1.3k Jul 26, 2022
    an easy implementation of a multi-process tcp server and a multi-thread tcp client

    一个TCP多进程服务器-多线程客户端的简单实现。 客户端类似Apache ab的测试功能,能够通过向某一个ip端口发送指定并发量和总数量的tcp短连接;服务端处理tcp短连接,每来一条消息就打印一条log。 使用cmake编译,建议在vscode里编译,或者命令行 # 终端进入目录 mkdir bu

    adin 1 Nov 28, 2021
    Forkpool - A bleeding-edge, lock-free, wait-free, continuation-stealing scheduler for C++20

    riften::Forkpool A bleeding-edge, lock-free, wait-free, continuation-stealing scheduler for C++20. This project uses C++20's coroutines to implement c

    Conor Williams 123 Jul 6, 2022
    A collection of hash tables for parallel programming, including lock-free, wait-free tables.

    Hatrack Hash tables for parallel programming This project consisists of fast hash tables suitable for parallel programming, including multiple lock-fr

    null 57 Jul 26, 2022