Release 4.5

Written on March 14, 2021 by Jesse Chan (jesec)

4.5.4 (April 24, 2021)

  • Bug fixes:
    • “Torrents with long names get truncated in torrent detail modal (#273)” on Safari
  • New translations
    • Chinese (Simplified), thanks to @coxde
    • Dutch, thanks to John Willemsen
    • Italian, thanks to Simone De Nadai
  • Bump dependencies

4.5.3 (April 10, 2021)

  • Bug fixes:
    • Tags need a F5 refresh to be displayed after being set (#266)
    • Torrents with long names get truncated in torrent detail modal (#273)
    • qBittorrent: allow .torrent download with new session directory path (#275, @angristan)
  • New translations
    • French, thanks to @foXaCe
    • Hungarian, thanks to @m3r3nix
    • Japanese, thanks to @Kiina
    • Korean, thanks to @Kiina
    • Spanish, thanks to @Shutruk
  • Bump dependencies

4.5.2 (April 4, 2021)

  • Add “Log Out” button to connection interrupted page
  • Add “tini” init process to containers (#260, @onedr0p)
  • Bug fixes:
    • No longer fails to add some URLs to rTorrent with XMLRPC
    • Fix Connection settings can not be empty. after submit
  • Bump dependencies

4.5.1 (March 31, 2021)

  • Allow to press Ctrl-A or Command-A to select all torrents (#253, @sabersalv)
  • Enlarge width of “Torrent Details” modal (#250, @RoroTiti)
  • Bug fixes:
    • Fix multi-file “Move torrents” of rTorrent (XMLRPC)
    • Don’t close the notification panel when a button is clicked
  • New translations
    • Czech, thanks to @brezinajn
    • Italian, thanks to @gmcinalli
    • Korean, thanks to @Kiina and @m4ximuel
  • Bump dependencies

4.5.0 (March 14, 2021)

  • Reannounce. Typically torrent clients do that automatically, but in some cases you may want to do it manually. It is available as a context menu action.
  • Redesigned filesystem browser. Allow searching in the current directory and eliminate unnecessary requests sent to server. Additionally, navigation via arrow keys is implemented (mainly for accessibility but could be useful for anyone).
  • Major accessibility enhancements. All elements are now navigable by keyboard.
  • Improve scrolling performance by overscanning 30 rows.
  • rTorrent:
    • JSON-RPC support for eligible versions. Preliminary tests showed that, when compared with XMLRPC, JSON-RPC yields 2x performance, 15% lower total CPU time in rTorrent process, 33% lower total CPU time in Flood process.
    • load.throw command support for eligible versions. Definitive response when you add torrents, so Flood won’t display success when the operation actually fails.
    • Better handle command failures.
    • Verify filesystem access and respond with errors when necessary.
  • Bug fixes:
    • Fix French mistranslation
    • Fix button location in download rules tab of feed modal
    • Fix “Set tracker” of single tracker torrents in rTorrent
    • Fix “Checking” bar selected style for dark color scheme
    • Recognize qBittorrent’s “Forced” state
    • Disk usage service errors are no longer fatal
  • New translations
    • Chinese (Simplified), thanks to @MeetWq
    • Chinese (Traditional), thanks to @vongola12324
    • Czech, thanks to @brezinajn
    • French, thanks to @Carryozor and @foXaCe
    • German, thanks to @chint95
    • Hungarian, thanks to @m3r3nix
    • Romanian, thanks to @T-z3P
  • Bump dependencies

Notes about jesec/rtorrent

This rTorrent distribution is required for many features, including JSON-RPC. Benefits over vanilla rTorrent 0.9.8:

  • Migrate to modern build system, Bazel and CMake: It becomes considerably easier to engage with the development of the project. It also becomes possible to build fully static and/or reproducible binaries easily.
  • Modernization of code base. By bumping the target from C++0x to C++17, replacing deprecated standard library functions and using more modern code patterns, the compiler is able to generate better binary codes with higher performance for the same functionality.
  • Proactive use of modern debugging, profiling and analyzing techniques. While retaining the same functionality, trivial fixes are made to tackle down the potential memory leak, out-of-scope memory access and heap buffer overflow, which in the best case can cause instability when under load and in the worst case can be a security issue.
  • Optimized by default. Distributed binaries are compiled with the highest optimization level and LTO, which allows better performance and lower resource consumption.
  • Secure by default. SCGI socket is created with limited privileges by default, so you don’t need to chmod 0700 manually. Docker images of this project are distroless (no shell, coreutils, etc.), which defeat most intruders even if they gained access to RPC interface.
  • Easier to set up and portable across distributions. Fully static binaries are available, which will work on any Linux distribution. A sane standard default configuration, which allows most users to skip the usual .rtorrent.rc headache, is included in the installation. A systemd service unit is also included in applicable packages, so one can enable a service simply by sudo systemctl enable rtorrent@<user>.service. Additionally, runtime detection of the path to trusted CA bundle is supported, so you don’t have to figure that out (or dangerously disable certificate verification) in order to enable HTTPS support.
  • Support optional sequential downloading. See Notes about sequential downloading in Changelog 4.4 about pros and cons.
  • Expose the existing initial seeding (aka superseeding) feature to RPC interface, so users may toggle it in the web UI.
  • JSON-RPC over SCGI: preliminary tests showed that, when compared with XMLRPC, JSON-RPC yields 2x performance, 15% lower total CPU time in rTorrent process, 33% lower total CPU time in RPC caller’s process. This is the first step towards a modern RPC interface. The long-term goal is to have a RPC interface with full bidirectional, stream processing, incremental data loading and high concurrency capabilities, which allows real-time events for RPC user, less serialization/transfer overheads, potentially better security (with authentication and/or TLS), etc.
  • A commitment: I use rTorrent extensively and I will continue using it for the time being. rTorrent excels in performance, stability and scalability. At the same time, it also features the lowest resource consumption. I am not going to sit back and let this excellent client unmaintained. Fortunately, rakshasa is active again recently. I am committed to preserve the consensus-layer behavior, merge the changes from the latest stable release of upstream, and utilize continuous integration to distribute binaries/images/packages. However, should the need arise, I am also prepared to maintain a permanent continuance after consultation with rakshasa and the community. You can count on this distribution.

Again, there is NO CHANGE in consensus-layer (BitTorrent protocol, tracker announce, etc.). At this stage, potential consensus-layer changes are explicitly prohibited. As such, this distribution will behave exactly the same as vanilla rTorrent 0.9.8 in the swarm, and there will not be any compatibility issue with certain trackers