rqbit 9
Recap of the the most major changes since rqbit 8:
- completely new UI https://github.com/ikatson/rqbit/releases/tag/v9.0.0-beta.2
- uTP support (still via a flag, disabled by default) https://github.com/ikatson/rqbit/releases/tag/v9.0.0-beta.0
- IPv6 support https://github.com/ikatson/rqbit/releases/tag/v9.0.0-beta.1
There's TONS of smaller changes, perf improvements etc.
Changes since beta.2:
What's Changed
- feat(webui): add keyboard shortcuts by @ikatson in #536
- fix: preserve tracker's built-in passkey query parameter when adding private torrents by @aji-555 in #542
- feat: SHA-256 foundation + BEP 52 error types by @meatsquirk in #562
- [DOCKER] Fix HOME env variable for podman by @lilianm in #573
- Systemd socket activation by @Stebalien in #505
- Add configurable client identity for HTTP User-Agent and peer handshakes by @libalpm64 in #577
- Limit pending incoming handshake checks by @puneetdixit200 in #592
- webui: restore playlist actions by @ikatson in #602
- librqbit(dht): provide an option to set DhtConfig::listen_addr by @chantra in #591
- Fixes before 9 release by @ikatson in #604
- Expose peer client name in peer stats by @exbit in #606
- Add ManagedTorrent::output_folder() accessor by @zemse in #610
- Allow pausing during the initial file check by @exbit in #605
- Add --upnp-port-forward flag to rqbit download by @rektide in #615
- Fix DefaultBodyLimit to allow torrents bigger than 2 MB to be uploaded, Fixed init state throwing 500 internal server error by @libalpm64 in #616
- feat: add mDNS advertising for the HTTP API by @Delarkz in #619
- fix(deps): remediate RustSec advisories by @chantra in #620
- fix windows pread_exact (#625) by @ikatson in #630
- update all deps to latest versions by @ikatson in #631
- (perf): smaller sample size in fastresume by @ikatson in #632
New Contributors
- @aji-555 made their first contribution in #542
- @meatsquirk made their first contribution in #562
- @lilianm made their first contribution in #573
- @Stebalien made their first contribution in #505
- @libalpm64 made their first contribution in #577
- @puneetdixit200 made their first contribution in #592
- @chantra made their first contribution in #591
- @zemse made their first contribution in #610
- @rektide made their first contribution in #615
- @Delarkz made their first contribution in #619
Full Changelog: v9.0.0-beta.2...v9.0.0
What's Changed since 8.1.1
- Use Rust edition 2024 by @ikatson in #377
- librqbit: backoff crate (unmaintained) -> backon by @ikatson in #378
- uTP support (disabled by default) by @ikatson in #322
- Preparing 9.0.0-beta.0 release by @ikatson in #379
- Fix a very rare bug where DHT paniced by @ikatson in #380
- [feature] allow creating torrents via HTTP API by @ikatson in #387
- [bugfix] WebUI: padding files are not checked by default by @ikatson in #388
- improvement: backend ignores only files if they are padding files + code reuse by @ikatson in #389
- [enhancement]: create sparse files on Windows by @ikatson in #390
- [feature] TCP and uTP: listen on IPv6 dualstack instead of IPv4 only by @ikatson in #392
- [feature]: HTTP trackers now support IPv6 peers by @ikatson in #393
- [feature]: UDP trackers IPv6 support by @ikatson in #394
- [enhancement]: optimize tracker log verbosity + a improvement in HTTP retrying by @ikatson in #395
- [feature]: DHT - dualstack over IPv6 by @ikatson in #396
- DHT: patch persistence file for the upgraded DHT (to enable v6) by @ikatson in #397
- [fix]: utp - better wait algorithm for TCP failures by @ikatson in #398
- [refactor] Refactor compact ips code reuse by @ikatson in #399
- [fix] invalid torrent names to use from_utf8_lossy #316 by @ikatson in #400
- [fix] Do not try to delete padding files as they don't exist by @ikatson in #401
- [refactor] small optimizations to new compact_ip.rs by @ikatson in #404
- [enhancement] DHT improvements by @ikatson in #405
- [refactor]: optimize bencode error handling and perf by @ikatson in #406
- [breaking] rqbit download: make it a lot simpler (fixes #402) by @ikatson in #403
- [refactor / perf] various (potential) perf tweaks by @ikatson in #409
- Fix shell completion output by @Jeidnx in #413
- [UX]: rqbit download tweaks + README updates by @ikatson in #414
- [feature]: rqbit share CLI command by @ikatson in #415
- [feature]: local service discovery by @ikatson in #416
- [fix] various tweaks and fixes by @ikatson in #417
- [feature] TCP connect now uses the same source port as announce port by @ikatson in #418
- [fix] PEX: do not linger the task when the peer is dead by @ikatson in #419
- [optimization] PEX: dont send local network peers to public by @ikatson in #420
- [refactor] tweak error and log messages by @ikatson in #422
- [perf] reduce memcpy by using pwritev on unix + rewrite protocol parsing for it by @ikatson in #421
- [perf] read vectored by @ikatson in #423
- [refactor] remove a bunch of unused stuff and specialized some generics by @ikatson in #424
- [fix] upnp + IPv6: disable link-local responses by @ikatson in #427
- [perf] various lower level perf optimizations by @ikatson in #428
- [refactor] bencode: remove the hack for info hash computation by @ikatson in #430
- [fix] http trackers: support responses with trailing bytes by @ikatson in #431
- [fix] fix a recently introduced bug with ut_metadata by @ikatson in #432
- Fix build errors when sha1 is missing by @ikatson in #433
- various refactorings by @ikatson in #434
- [fix][feature] various small fixes and tweaks by @ikatson in #435
- [fix] bencode: parsing negative integers by @ikatson in #436
- [perf] decrease CPU usage due to disabling tracing in several places by @ikatson in #437
- [refactor] code reuse in rqbit's main.rs by @ikatson in #438
- [perf] upgrade librqbit-utp + remove deadlock detection by @ikatson in #442
- [perf] librqbit-utp vectored read + vectored write by @ikatson in #443
- [feature] add peer uploaded bytes stat by @ikatson in #444
- [feature] bind to a specific network device by @ikatson in #445
- [refactor] tweak blocklist code by @ikatson in #446
- [memory] blocklist - split into v4/v6 to save memory by @ikatson in #448
- [fixes] various small fixes by @ikatson in #449
- [feature] support filenames that are invalid utf-8 by @ikatson in #453
- [feat] librqbit: support ephemeral ports when listening. by @ikatson in #455
- [feature] detect non-utf8 character encodings + big refactor to validate the torrent once at init by @ikatson in #456
- Update README for Homebrew install by @rossmacarthur in #459
- Fix typo in shell completions command by @brendanny in #461
- Update deps by @ikatson in #467
- apply fmt 2024 (fix clippy warnings) by @oooo-ps in #475
- Fix cargo warnings by @exbit in #479
- Fix typos by @marsam in #480
- Allow specifying DHT bootstrap nodes from commandline or environment by @crass in #485
- Update dependencies by @ikatson in #488
- Allowlist option (based on the shared registry implementation) by @oooo-ps in #497
- require clippy + rustfmt for all targets by @oooo-ps in #498
- streaming: support ranges with end by @ikatson in #503
- Upgrade
console-subscriberto0.5by @bbb651 in #513 - Use
serde_derivedependency instead ofserde/derivefeature by @bbb651 in #511 - docs: AddTorrentOptions::overwrite required even with complete torrent by @angrynode in #515
- Introduce "block_in_place" concurrency limit by @ikatson in #521
- Async disk bitv flushing (remove mmap) by @ikatson in #522
- Streaming: blocking permit for the whole stream duration by @ikatson in #523
- PEX: kill the task as soon as peer dies by @ikatson in #530
- Compact UI v2 by @ikatson in #529
- Network Connectivity Improvements (Add Announce Port Override And ipv4-only Mode) by @alexmichaelkeith in #531
- fix: piece state tracking and peer connection handling improvement by @ikatson in #532
- refactor: migrate to workspace dependencies by @ikatson in #534
- feat(webui): add keyboard shortcuts by @ikatson in #536
- fix: preserve tracker's built-in passkey query parameter when adding private torrents by @aji-555 in #542
- feat: SHA-256 foundation + BEP 52 error types by @meatsquirk in #562
- [DOCKER] Fix HOME env variable for podman by @lilianm in #573
- Systemd socket activation by @Stebalien in #505
- Add configurable client identity for HTTP User-Agent and peer handshakes by @libalpm64 in #577
- Limit pending incoming handshake checks by @puneetdixit200 in #592
- webui: restore playlist actions by @ikatson in #602
- librqbit(dht): provide an option to set DhtConfig::listen_addr by @chantra in #591
- Fixes before 9 release by @ikatson in #604
- Expose peer client name in peer stats by @exbit in #606
- Add ManagedTorrent::output_folder() accessor by @zemse in #610
- Allow pausing during the initial file check by @exbit in #605
- Add --upnp-port-forward flag to rqbit download by @rektide in #615
- Fix DefaultBodyLimit to allow torrents bigger than 2 MB to be uploaded, Fixed init state throwing 500 internal server error by @libalpm64 in #616
- feat: add mDNS advertising for the HTTP API by @Delarkz in #619
- fix(deps): remediate RustSec advisories by @chantra in #620
- fix windows pread_exact (#625) by @ikatson in #630
- update all deps to latest versions by @ikatson in #631
- (perf): smaller sample size in fastresume by @ikatson in #632
New Contributors
- @Jeidnx made their first contribution in #413
- @rossmacarthur made their first contribution in #459
- @brendanny made their first contribution in #461
- @oooo-ps made their first contribution in #475
- @exbit made their first contribution in #479
- @marsam made their first contribution in #480
- @crass made their first contribution in #485
- @bbb651 made their first contribution in #513
- @angrynode made their first contribution in #515
- @alexmichaelkeith made their first contribution in #531
- @aji-555 made their first contribution in #542
- @meatsquirk made their first contribution in #562
- @lilianm made their first contribution in #573
- @Stebalien made their first contribution in #505
- @libalpm64 made their first contribution in #577
- @puneetdixit200 made their first contribution in #592
- @chantra made their first contribution in #591
- @zemse made their first contribution in #610
- @rektide made their first contribution in #615
- @Delarkz made their first contribution in #619
Full Changelog: v8.1.0...v9.0.0