https://github.com/transmission/transmission/releases/tag/4.0.0 Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code + Explore + All features + Documentation + GitHub Skills + Blog * Solutions + For + Enterprise + Teams + Startups + Education + By Solution + CI/CD & Automation + DevOps + DevSecOps + Case Studies + Customer Stories + Resources * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles + Repositories + Topics + Trending + Collections * Pricing [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} transmission / transmission Public * Notifications * Fork 1k * Star 8.8k * Code * Issues 436 * Pull requests 39 * Discussions * Actions * Security * Insights More * Code * Issues * Pull requests * Discussions * Actions * Security * Insights 1. Releases 2. 4.0.0 4.0.0 Latest Latest Compare Choose a tag to compare [ ] Could not load tags Nothing to show {{ refName }} default (*) View all tags @ckerr ckerr released this 08 Feb 01:51 * 1 commit to main since this release 4.0.0 280ace1 This commit was created on GitHub.com and signed with GitHub's verified signature. GPG key ID: 4AEE18F83AFDEB23 Learn about vigilant mode. Transmission 4.0.0 Highlights This is a major release, both in numbering and in effort! It's been in active development for over a year and has a huge list of changes -- over a thousand commits -- since Transmission 3.00. Some of the highlights include: * Resource Efficiency - Use less memory and fewer CPU cycles * Better Community - Pull requests welcomed and used * Code Modernization - Migrated from C90 to modern C++ * New Features - What would a major release be without them? Resource Efficiency * The code has been extensively profiled and improved to fix inefficient code and memory use. For example, a stress test of starting transmission-daemon with 25,000 torrents is almost entirely IO-bound, using 50% fewer CPU cycles and 70% fewer memory allocations than Transmission 3.00. * The remote control GUIs (transmission-qt and transmission-web) now use the RPC API "table" mode, resulting in smaller payloads / less bandwidth use. * RPC payloads are now compressed using libdeflate, a "heavily optimized [library that is] significantly faster than the zlib library." Community * The project is much more responsive to bug reports and code submissions than it has been in the past. * There is a new group of volunteer contributors who are working on Transmission! * Transmission 4.0.0 includes over 350 new community commits (see the Thank You section below and in the previous 4.0.0 betas) since 3.00 and welcomes new contributors. * Documentation has been moved into the transmission/transmission so that contributors can submit PRs to improve it. Code Modernization * The entire codebase has been migrated from C to C++. In the process, we've removed thousands of lines of custom code and used standard C++ tools instead. The core's code has shrunk by 18%. The core codebase has been extensively refactored to be more testable and maintainable. * The GTK client has been ported to gtkmm. * The Web client has been rewritten in modern JavaScript and no longer uses jQuery. The entire gzipped bundle is now 68K. * The unit tests have been expanded and ported to Google Test. Clang sanitizer builds are run during CI. * The core library is now fuzz tested. * Transmission now uses Sonarcloud, Coverity, LGTM, and clang-tidy static analysis on new code. Several hundred code warnings have been fixed compared to Transmission 3.00. New Features * Support for using BitTorrent v2 torrents and hybrid torrents. (Support for creating v2 and hybrid torrents is slated for an upcoming release.) * Users can now set "default" trackers that can be used to announce all public torrents. * Newly-added seeds can start immediately and verify pieces on demand, instead of needing a full verify before seeding can begin. (#2626) * Added an option to omit potentially-identifying information (e.g. User-Agent and date created) when creating new torrents. (#3452) * The Web client has been rewritten and now supports mobile use. * When creating new torrents, users can now specify the piece size. (#3768, #3145, #2805) * IPv6 blocklists are now supported. (#3835) * Beginning with 4.0.0-beta.1, Transmission releases now use semver versioning. * Dozens of other new features -- too many to list here! We've been working on this for a year! What's New Since 4.0.0-beta.3 libtransmission (All Platforms) * Added a new setting, torrent-added-verify-mode, to force-verify added torrents. (#4611) * Improved handling of webseed servers that do not support Range requests or 206 Partial Content. (#4601) * Improved handling of webseed servers that return a content-encoding that was not requested. (#4609) * Fixed 4.0.0-beta.3 potential socket leak. (#4616) * Fixed 4.0.0-beta.3 regression that failed to detect largefile build flags on 32bit systems. (#4627) * Fixed 4.0.0-beta.1 UI bug when removing a tracker from the announce list. (#4635) * Improved error handling when receiving corrupt piece data from peers. (#4665) * Fixed 4.0.0-beta.1 FTBFS error on CentOS 7. (#4673, #4675) * Made small performance improvements in libtransmission. (#4577, # 4679) * Dropped libiconv dependency in libtransmission. (#4565) * Updated 403 RPC error message. (#4567) * Bumped libdeflate snapshot to 1.17. (#4596) macOS Client * Fixed two Help menus in macOS. (#4500) * Fixed bug that caused magnet links to always be paused when added. (#4528) * Fixed 4.0.0-beta.1 regression that broke the Piece View "blinking" when a piece completes. (#4587) * Ensured that the preferences window is centered the first time it is shown. (#4659) * Fixed 4.0.0-beta.1 regression that incorrectly handled corrupt blocklists. (#4705) * Increased the font size in the main window's torrent list. (#4557 ) * Fixed libpsl dependency build issue on macOS. (#4642) Qt Client * Made display order of speed limits consistent between Properties, Details dialogs. (#4677) GTK Client * Fixed 4.0.0-beta.1 regression making it impossible to close "Set location" dialog (GTK 3 only). (#4625) * Fixed 4.0.0-beta.2 regression leading to crash during progress bars rendering on some systems. (#4688) Web Client * Fixed 4.0.0-beta.1 potential crash when detecting mime-types. (# 4569) * Fixed 4.0.0-beta.1 regression that broke file priority buttons in the web client. (#4610) Daemon * Fixed stderr logging issue when running as a systemd unit. (#4612 ) transmission-remote * Fixed 4.0.0-beta.1 regression when displaying session info. (# 4624) * Fixed 4.0.0-beta.1 regression when displaying tracker info. (# 4633) Thank You! Last but certainly not least, a big Thank You to these people who contributed after 4.0.0-beta.3: Contributions to libtransmission (All Platforms): * @dmantipov (Dmitry Antipov): + Chore: simplify announcer add callback. (#4573) + Refactor: use std::function for announcer callback. (#4575) + Refactor: switch to C++11-compatible tr_wait() from tr_wait_msec(). (#4576) + Made small performance improvements in libtransmission. (# 4577) + Made small performance improvements in libtransmission. (# 4679) * @InsaneKnight: + Fixed 4.0.0-beta.3 potential socket leak. (#4616) * @nevack (Dzmitry Neviadomski): + Code review for #4576 Contributions to macOS Client: * @cfauchereau (Clement Fauchereau): + Fixed two Help menus in macOS. (#4500) * @DevilDimon (Dmitry Serov): + Code review for #4500, #4692 * @GaryElshaw (Gary Elshaw): + Increased the font size in the main window's torrent list. (# 4557) * @nevack (Dzmitry Neviadomski): + Code review for #4500, #4692 + Fixed 4.0.0-beta.1 regression that incorrectly handled corrupt blocklists. (#4705) * @sweetppro (SweetPPro): + Fixed bug that caused magnet links to always be paused when added. (#4528) Contributions to Qt Client: * @anarcat (anarcat): + Added remote HTTPS support to Qt GUI. (#4622) * @GaryElshaw (Gary Elshaw): + Removed 'Message Log' item from Qt sys tray. (#4656) * @Schlossgeist (Nick): + Quick fix: changed order of some session prefs. (#4676) Contributions to Web Client: * @dareiff (Derek Reiff): + Fixed 4.0.0-beta.1 regression that broke file priority buttons in the web client. (#4610) Contributions to Daemon: * @dmantipov (Dmitry Antipov): + Fixed stderr logging issue when running as a systemd unit. (# 4612) Contributions to transmission-remote: * @lajp (Luukas Portfors): + Fixed 4.0.0-beta.1 regression when displaying session info. ( #4624) + Fixed 4.0.0-beta.1 regression when displaying tracker info. ( #4633) Contributions to Everything Else: * @progiv (progiv): + Fixed GitHub CI actions warning for set-output. (#4564) * @t-8ch (Thomas Weissschuh): + Code review for #4637 New Contributors since 3.00 * @1100101 made their first contribution in #2040 * @acchang made their first contribution in #3729 * @anacrolix made their first contribution in #2275 * @anarcat made their first contribution in #4622 * @AndreyPavlenko made their first contribution in #585 * @azy5030 made their first contribution in #2805 * @BENICHN made their first contribution in #1760 * @Berbe made their first contribution in #1417 * @bexnoss made their first contribution in #2201 * @bkuhls made their first contribution in #2576 * @buckmelanoma made their first contribution in #2179 * @BunioFH made their first contribution in #2284 * @candrews made their first contribution in #2573 * @carandraug made their first contribution in #3452 * @cfauchereau made their first contribution in #4500 * @Chrool made their first contribution in #1447 * @CodeWitchBella made their first contribution in #2874 * @cpba made their first contribution in #1487 * @Dachtire made their first contribution in #3736 * @dareiff made their first contribution in #3985 * @dbeinder made their first contribution in #2799 * @deepwell made their first contribution in #1681 * @dependabot made their first contribution in #1559 * @depler made their first contribution in #2066 * @dmantipov made their first contribution in #3766 * @evils made their first contribution in #2204 * @ewtoombs made their first contribution in #3049 * @FallenWarrior2k made their first contribution in #2721 * @federicobond made their first contribution in #1441 * @FluxState made their first contribution in #2586 * @foobar-d made their first contribution in #2847 * @fxcoudert made their first contribution in #2234 * @GaryElshaw made their first contribution in #2779 * @GermanAizek made their first contribution in #4172 * @ghazel made their first contribution in #3447 * @github-actions made their first contribution in #4664 * @goldsteinn made their first contribution in #2933 * @guidocella made their first contribution in #1080 * @guidovranken made their first contribution in #3600 * @Harm133 made their first contribution in #3835 * @ile6695 made their first contribution in #2508 * @IMurzich made their first contribution in #3739 * @InsaneKnight made their first contribution in #4616 * @johman10 made their first contribution in #1682 * @jonasmalacofilho made their first contribution in #2232 * @JP-Ellis made their first contribution in #2812 * @kakuhen made their first contribution in #2690 * @Kobaxidze256 made their first contribution in #3552 * @koro666 made their first contribution in #1405 * @kvakvs made their first contribution in #1799 * @Kwstubbs made their first contribution in #4125 * @L2501 made their first contribution in #3750 * @lajp made their first contribution in #2905 * @Lanzaa made their first contribution in #3380 * @lucaxvi made their first contribution in #3655 * @luzpaz made their first contribution in #3743 * @lvella made their first contribution in #1660 * @MatanZ made their first contribution in #2761 * @maxz made their first contribution in #2875 * @meskobalazs made their first contribution in #3210 * @mickaelifs made their first contribution in #1602 * @mlopezfm made their first contribution in #2549 * @mymedia2 made their first contribution in #1354 * @Narthorn made their first contribution in #1638 * @npapke made their first contribution in #1619 * @Oleg-Chashko made their first contribution in #1923 * @orbital-mango made their first contribution in #3124 * @OscarCunningham made their first contribution in #3814 * @pborzenkov made their first contribution in #1251 * @pedrinho made their first contribution in #1313 * @piec made their first contribution in #1328 * @progiv made their first contribution in #4564 * @pudymody made their first contribution in #3927 * @pyrovski made their first contribution in #715 * @razaqq made their first contribution in #2053 * @robd003 made their first contribution in #3669 * @rsekman made their first contribution in #3201 * @saidinesh5 made their first contribution in #1161 * @sammarcus made their first contribution in #459 * @sandervankasteel made their first contribution in #1885 * @Schlossgeist made their first contribution in #4676 * @sewe2000 made their first contribution in #3121 * @shelvacu made their first contribution in #1900 * @shenhanc78 made their first contribution in #1282 * @shric made their first contribution in #1326 * @sio made their first contribution in #893 * @sir-sigurd made their first contribution in #1040 * @smrtrfszm made their first contribution in #4363 * @stefantalpalaru made their first contribution in #4343 * @subdan made their first contribution in #4245 * @sweetppro made their first contribution in #2654 * @tinselcity made their first contribution in #4409 * @ToKe79 made their first contribution in #2071 * @trainto made their first contribution in #1489 * @tylergibbs2 made their first contribution in #1808 * @uiryuu made their first contribution in #3962 * @uprt made their first contribution in #857 * @varesa made their first contribution in #1633 * @vchimishuk made their first contribution in #1364 * @ViktorOn made their first contribution in #3710 * @vuori made their first contribution in #265 * @wiz78 made their first contribution in #874 * @wsy2220 made their first contribution in #4684 * @xavery made their first contribution in #851 * @Xist12gh made their first contribution in #3756 * @yarons made their first contribution in #3996 Contributors * @ghazel * @vchimishuk * @xavery * @federicobond * @candrews * @Lanzaa * @pedrinho * @saidinesh5 * @kvakvs * @pyrovski * @sio * @dbeinder * @yarons * @subdan * @deepwell * @pborzenkov * @dareiff * @sir-sigurd * @stefantalpalaru * @robd003 * @piec * @anarcat * @pudymody * @varesa * @carandraug * @anacrolix * @1100101 * @lvella * @AndreyPavlenko * @Narthorn * @mlopezfm * @shric * @shelvacu * @progiv * @jonasmalacofilho * @tylergibbs2 * @L2501 * @Harm133 * @fxcoudert * @ewtoombs * @koro666 * @JP-Ellis * @tinselcity * @luzpaz * @Berbe * @johman10 * @MatanZ * @razaqq * @bkuhls * @trainto * @maxz * @guidovranken * @vuori * @wsy2220 * @sweetppro * @azy5030 * @Chrool * @sammarcus * @mymedia2 * @meskobalazs * @wiz78 * @Kwstubbs * @cpba * @guidocella * @npapke * @depler * @dmantipov * @uprt * @ToKe79 * @sandervankasteel * @shenhanc78 * @BunioFH * @uiryuu * @FallenWarrior2k * @smrtrfszm * @IMurzich * @GermanAizek * @acchang * @lucaxvi * @BENICHN * @dependabot * @rsekman * @evils * @lajp * @cfauchereau * @ile6695 * @goldsteinn * @OscarCunningham * @foobar-d * @CodeWitchBella * @buckmelanoma * @github-actions * @Dachtire * @sewe2000 * @Oleg-Chashko * @ViktorOn * @mickaelifs * @GaryElshaw * @Schlossgeist * @Kobaxidze256 * @kakuhen * @bexnoss * @FluxState * @InsaneKnight * @orbital-mango * @Xist12gh ghazel, vchimishuk, and 104 other contributors Assets 9 165 people reacted 68 WesleyKhoiVo, WenvyG, arrufat, templarundead, stefantalpalaru, sjtuross, euxx, derekn, sjiang95, Auska, and 58 more reacted with thumbs up emoji 112 tomyangsh, jslawler, larouxn, bastimeyer, lourenci, WenvyG, arrufat, sweetppro, Goddard, nestormarius, and 102 more reacted with hooray emoji [?] 51 garoto, arrufat, sweetppro, templarundead, euxx, Lytexx, sjiang95, onmyouji, CyberBlaed, madurapa, and 41 more reacted with heart emoji 43 Zabriskije, arrufat, sweetppro, templarundead, euxx, JezerM, sjiang95, Baccount, outaTiME, nevack, and 33 more reacted with rocket emoji All reactions * 68 reactions * 112 reactions * [?] 51 reactions * 43 reactions Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.