Releases: ikatson/rqbit
v8.0.0
rqbit v8.0.0
Why a major release? Lots of merged PRs since v7.0.1, minor breaking changes in librqbit API and CLI naming.
Other than that, it's a checkpoint to release all the work by many contributors.
Breaking changes
- Minimal Rust version bumped from 1.75 to 1.78
- CLI parameters changes:
- renamed
disable-upnp
->disable-upnp-port-forward
- removed
upnp-server-hostname
- added
enable-upnp-server
- renamed
- librqbit API changes: if any, they are minor, but might be some depending on usage. All should be easy to fix just by resolving compilation errors.
UI features
- There's a banner in the bottom showing total up/down speed and uploaded/downloaded bytes since restart
- Upload multiple files through UI
Some Other features
- upload/download rate limits
- watching a directory for .torrent files and adding them automatically (usage in #237)
- Improved UPNP server support. Now works on some Samsung TVs, and should be more reliable overall.
HTTP API changes
BitTorrent protocol features
- BEP-47 padding files
- BEP-53 select only files from magnet
- BEP-11 Peer EXchange
What's Changed
- feat: add on_piece_completed method on TorrentStorage by @cocool97 in #219
- PEX - Peer Exchange initial impl by @izderadicka by @ikatson in #221
- [Feature] UPNP MediaServer: send notifies on all interfaces, no need to specify hostname by @ikatson in #222
- [Feature] option to disable upload by @ikatson in #223
- Desktop same workspace by @ikatson in #225
- [Feature] [UPnP] connection manager stub by @ikatson in #226
- Various tweaks to peer protocol information by @ikatson in #227
- Smarter fastresume by @ikatson in #228
- Standardized m3u8 formatting by @Artrix9095 in #229
- Remove error when adding duplicate torrents by @Artrix9095 in #230
- [UPnP / DLNA] Updates for Samsung to work by @ikatson in #231
- UPNP: join all multicast groups from all interfaces (not just the default one picked by the kernel) by @ikatson in #232
- Fastresume: check at least one piece from each file + windows fix by @ikatson in #235
- In PEX we should also look at dropped peers by @izderadicka in #233
- Upload multiple files through UI (fix #68) by @ikatson in #236
- [Feature] watching a directory for .torrent files and adding them automatically by @ikatson in #237
- [Feature] SSDP IPv6 support by @ikatson in #238
- [Refactor] Re-use code in "merge_streams" by @ikatson in #240
- Change to restarting of dead peers by @izderadicka in #239
- Add support for adding custom trackers by @Moeweb647252 in #243
- Correct peer outgoing address for incomming peers by @izderadicka in #244
- [Refactor] Generic peer IP by @ikatson in #246
- [Perf] Increase http_api stream capacity (perf optimisation) by @ikatson in #247
- feat: upgrade to tauri 2.0 by @PastaPastaPasta in #249
- feat: implement BEP-53 support by @PastaPastaPasta in #248
- refactor: use byteorder crate to enhance portability (to BE systems), and enhance code readability, avoiding manual byte manipulations by @PastaPastaPasta in #250
- Disable upload: do not expose in default builds, move under a feature flag. by @ikatson in #251
- Migrate linux configuration to a better named path. by @ikatson in #253
- Fix: transactional pause by @Mrreadiness in #254
- Add CLI parameter to allow send downloads to remote server by @izderadicka in #257
- Added destination_fodler to TorrentDetailsResponse by @markolo25 in #263
- Endpoint to show all torrents and all stats by @ikatson in #268
- BEP-47 padding files + refactor related code by @ikatson in #269
- BEP-47 - UI support and updates by @ikatson in #270
- [feature] support 40-byte infohash (not a magnet) as a way to add torrents by @ikatson in #271
- Update minimal Rust version to 1.76 by @ikatson in #278
- [feature] upload/download rate limits by @ikatson in #275
- Basic auth in HTTP API by @ikatson in #279
- Enable thin LTO release but not release-github by @luigi311 in #283
- Clippy updates + update Rust deps by @ikatson in #289
- PEX - sharing peers with othes [continue #261] by @ikatson in #284
- [feature] HTTP API timeouts by @ikatson in #290
- [breaking] multiple refactorings in preparation for deferring torrent metadata resolution by @ikatson in #292
- Prepare v8.0.0 by @ikatson in #294
New Contributors
- @cocool97 made their first contribution in #219
- @Artrix9095 made their first contribution in #229
- @Moeweb647252 made their first contribution in #243
- @PastaPastaPasta made their first contribution in #249
- @Mrreadiness made their first contribution in #254
- @markolo25 made their first contribution in #263
- @luigi311 made their first contribution in #283
Full Changelog: v7.0.1...v8.0.0
v7.1.0-beta.1
What's Changed since 7.1.0-beta.0
- UPNP: join all multicast groups from all interfaces (not just the default one picked by the kernel) by @ikatson in #232
- Fastresume: check at least one piece from each file + windows fix by @ikatson in #235
- In PEX we should also look at dropped peers by @izderadicka in #233
Full Changelog: v7.1.0-beta.0...v7.1.0-beta.1
v7.1.0-beta.0
What's Changed
- feat: add on_piece_completed method on TorrentStorage by @cocool97 in #219
- PEX - Peer Exchange initial impl by @izderadicka by @ikatson in #221
- [Feature] UPNP MediaServer: send notifies on all interfaces, no need to specify hostname by @ikatson in #222
- [Feature] option to disable upload by @ikatson in #223
- Desktop same workspace by @ikatson in #225
- [Feature] [UPnP] connection manager stub by @ikatson in #226
- Various tweaks to peer protocol information by @ikatson in #227
- Smarter fastresume by @ikatson in #228
- Standardized m3u8 formatting by @Artrix9095 in #229
- Remove error when adding duplicate torrents by @Artrix9095 in #230
- [UPnP / DLNA] Updates for Samsung to work by @ikatson in #231
New Contributors
- @cocool97 made their first contribution in #219
- @Artrix9095 made their first contribution in #229
Full Changelog: v7.0.1...v7.1.0-beta.0
v7.0.1
7.0.1 - hotfix release
The binaries were ok, but the cargo crate had an issue were it couldn't parse torrents - fixed here c063cc5
NOTE: also for 7.0.0 and 7.0.1 the docker images and linux binaries were compiled to use ring for SHA1, instead of openssl, which turned out to be very slow. I reverted to openssl and rebuilt these without upgrading the version as nothing in rqbit changed, only the build parameters (enabled features).
Full Changelog: v7.0.0...v7.0.1
v7.0.0
rqbit 7
Major new features:
- Integrated UPnP server to browse and stream directly to your LAN devices (e.g. TVs) more here
- SOCKS5 proxy support docs
- Now publishing multi-arch Docker images
- Playlist generation support through API and UI links
- Aggregate statistics in API and visible in UI
- MANY reliability improvements
- Fastresume - to restart quickly without rehashing
There's minor breaking changes in the CLI and librqbit API.
Merged PRs
- Playlist for playable media by @izderadicka in #167
- SOCKS5 proxy support by @ikatson in #168
- Copy playlist to clipboard, native UI (not alert) by @ikatson in #169
- Sort playlist and fix playlist URL copy by @izderadicka in #171
- Global playlist, not just per torrent by @ikatson in #172
- Playlist ordering and mime by @izderadicka in #173
- Fix playlist content type issues by @ikatson in #176
- Workaround default download dir #175 by @ikatson in #178
- Fix #154 - desktop now can upload files properly by @ikatson in #179
- Generate webui dist files as part of build.rs by @ikatson in #180
- Add an HTTP endopoint to resolve magnet URL to bytes (address #177) by @ikatson in #181
- Use bytes crate for zerocopy and memory re-use by @ikatson in #182
- Speed up e2e test by @ikatson in #183
- [Feature] support sending metadata to peers who request it (via extended request) by @ikatson in #184
- [Features] Support for pluggable session persistence storages by @ikatson in #185
- [Feature] postgres backend for session persistence by @ikatson in #186
- Hash-based API in addition to integer based by @ikatson in #187
- Split up librqbit http_api and tracing_subscriber into separate features by @ikatson in #188
- Limit concurrency of torrent initialization (fix #139) by @ikatson in #189
- Remove node-modules/.package-lock.json by @izderadicka in #191
- Implement Borrow<[u8]> for ByteBuf types by @izderadicka in #193
- Fix e2e test to break less by @ikatson in #195
- Fix a bug in merge_two_streams by @ikatson in #196
- Other fixes found by e2e test by @ikatson in #197
- Further e2e fixes for reliability by @ikatson in #198
- Fix unchoke broken in previous PR by @ikatson in #199
- [Feature] Decode torrent as JSON in the /torrents/resolve_magnet API by @ikatson in #200
- Fix a bug in torrent deletion by @ikatson in #201
- Update e2e test to test deletion by @ikatson in #202
- [Feature] Fast resume - quick restart without rehashing by @ikatson in #203
- [Feature] session stats by @ikatson in #204
- Cleanups by @ikatson in #205
- Fill yourip in extended handshake by @izderadicka in #206
- Fix persistence bugs by @ikatson in #207
- [Major feature] UPNP server integrated into rqbit by @ikatson in #208
- [Feature] UPnP server configurable from UI by @ikatson in #209
- [Feature] Add environment variables support to rqbit binary by @ikatson in #212
- Switch x86_64 build to use musl by @ikatson in #213
- [Feature] add umask option by @ikatson in #214
- Add docker build for linux/amd64 by @ikatson in #215
- Graceful shutdown + send ssdp:bye on termination by @ikatson in #216
- SO_REUSEADDR on upnp socket by @ikatson in #217
- Mediaserver response proper st by @ikatson in #218
Full Changelog: v6.0.0...v7.0.0
v7.0.0-beta.3
Major feature
UPnP server integrated into rqbit - it can advertise all known torrents to local network, and you can browse and stream torrents from compatible devices (checked on my LG and Sony TVs).
Configurable both from UI and CLI.
CLI usage
rqbit --upnp-server-hostname 192.168.0.112 --upnp-server-friendly-name "rqbit is awesome" server start ...
UI
What's Changed
- Fill yourip in extended handshake by @izderadicka in #206
- Fix persistence bugs by @ikatson in #207
- [Major feature] UPNP server integrated into rqbit by @ikatson in #208
- [Feature] UPnP server configurable from UI by @ikatson in #209
Full Changelog: v7.0.0-beta.2...v7.0.0-beta.3
v7.0.0-beta.2
What's Changed
- [Feature] Fast resume - quick restart without rehashing by @ikatson in #203
- [Feature] session stats (combined down/up speed + UI) by @ikatson in #204
Also fixed bugged desktop UI
Full Changelog: v7.0.0-beta.1...v7.0.0-beta.2
v7.0.0-beta.1
Reliability improvements. Also fix a bug introduced in 7.0.0-beta.0
For the rest of 7.0.0 changes see https://github.com/ikatson/rqbit/releases/edit/v7.0.0-beta.0
What's Changed
- Remove node-modules/.package-lock.json by @izderadicka in #191
- Implement Borrow<[u8]> for ByteBuf types by @izderadicka in #193
- Fix e2e test to break less by @ikatson in #195
- Fix a bug in merge_two_streams by @ikatson in #196
- Other fixes found by e2e test by @ikatson in #197
- Further e2e fixes for reliability by @ikatson in #198
- Fix unchoke broken in previous PR by @ikatson in #199
- [Feature] Decode torrent as JSON in the /torrents/resolve_magnet API by @ikatson in #200
- Fix a bug in torrent deletion by @ikatson in #201
- Update e2e test to test deletion by @ikatson in #202
Full Changelog: v7.0.0-beta.0...v7.0.0-beta.1
v7.0.0-beta.0
NOTE: don't use this, it has a bug where torrents are not deleted. Use https://github.com/ikatson/rqbit/releases/tag/v7.0.0-beta.1 instead
rqbit 7.0.0 beta 0
Why a major upgrade? There's minor breaking changes in the CLI and librqbit API.
Biggest changes:
- socks5 proxy support
- m3u playlist generation support
- postgres backend for session storage (instead of regular json file)
- now sharing torrent metadata with peers who request it
- HTTP API now accepts info_hashes in addition to integer indexes
What's Changed
- Playlist for playable media by @izderadicka in #167
- SOCKS5 proxy support by @ikatson in #168
- Copy playlist to clipboard, native UI (not alert) by @ikatson in #169
- Sort playlist and fix playlist URL copy by @izderadicka in #171
- Global playlist, not just per torrent by @ikatson in #172
- Playlist ordering and mime by @izderadicka in #173
- Fix playlist content type issues by @ikatson in #176
- Workaround default download dir #175 by @ikatson in #178
- Fix #154 - desktop now can upload files properly by @ikatson in #179
- Generate webui dist files as part of build.rs by @ikatson in #180
- Add an HTTP endopoint to resolve magnet URL to bytes (address #177) by @ikatson in #181
- Use bytes crate for zerocopy and memory re-use by @ikatson in #182
- Speed up e2e test by @ikatson in #183
- [Feature] support sending metadata to peers who request it (via extended request) by @ikatson in #184
- [Features] Support for pluggable session persistence storages by @ikatson in #185
- [Feature] postgres backend for session persistence by @ikatson in #186
- [Feature] hash-based HTTP API by @ikatson #187
- Split up librqbit http_api and tracing_subscriber into separate features by @ikatson in #188
- [Feature] Limit concurrency of torrent initialization (fix #139) by @ikatson in #189
Full Changelog: v6.0.0...v7.0.0-beta.0
v6.0.0
rqbit v6.0.0
There's a ton of internal changes an refactorings.
librqbit API might have changed a tiny bit, mostly from newly added options.
Biggest changes:
- streaming API + exposed HTTP endpoint + Web UI linking to file streams
- librqbit: dynamic storage backends
- ability to write to disk in background with buffering up to certain memory size. Isn't proven useful yet, but may be useful for disks with occasional latency spikes.
- optimisations
PRs merged
- Streaming API for existing on-disk storage by @ikatson in #124
- Bump up peer semaphore to increase per-peer speed on high-latency connections by @ikatson in #130
- Dynamic configurable storages by @ikatson in #129
- More storage backends and middlewares + ability to write to storage in background (with a flag / option) by @ikatson in #131
- A lot of changes and refactorings while simulating slow disks by @ikatson in #132
- More robust deletion of files and folders (fixes #140) by @ikatson in #145
- fix: can not add base32 encoded magnet url by @evrins in #151
- Add redirect for /web by @izderadicka in #152
- Add support for TB and PB in formatBytes in webui by @kielerdotdev in #156
- Add spawn blocking to FileStream by @izderadicka in #157
- Mark dead code explicitly by @izderadicka in #158
- Add content type to streams by @izderadicka in #162
- Update leaky_bucket version - current version have issues by @izderadicka in #163
- Fix #161 by @ikatson in #164
New Contributors
- @evrins made their first contribution in #151
- @izderadicka made their first contribution in #152
- @kielerdotdev made their first contribution in #156
Full Changelog: v5.6.4...v6.0.0