Skip to content

Releases: alanmcgovern/monotorrent

v3.0.0-beta-0000

10 Jul 14:28
Compare
Choose a tag to compare
v3.0.0-beta-0000 Pre-release
Pre-release

General

This is the first beta release of the 3.0.0 series. This release supports the BitTorrent V2 spec and also has many performance and memory
improvements over the 2.x series.

What's Changed

Full Changelog: release-v3.0.0-alpha-0233...release-v3.0.0-beta-0000

v3.0.0-alpha-0233

08 Jul 22:16
Compare
Choose a tag to compare
v3.0.0-alpha-0233 Pre-release
Pre-release

What's Changed

  • [piecewriter] Add a cache policy so reads can be cached by @alanmcgovern in #542
  • Add support for creating V1/V2 hybrid torrents, and V2 torrents by @alanmcgovern in #543
  • Full support for downloading V1/V2 hybrid torrents. The swarms for the V1 and V2 info hash are combined, and both infohashes are announced to DHT, local peer discovery as well as normal trackers.
  • [core] Optimise TorrentCreator performance by @alanmcgovern in #544

Full Changelog: release-v3.0.0-alpha-0217...release-v3.0.0-alpha-0233

v3.0.0-alpha-0217

25 Jun 10:52
Compare
Choose a tag to compare
v3.0.0-alpha-0217 Pre-release
Pre-release

New features

  • Support for BEP47 has been added, thanks to @jpmikkers .
  • Support for BEP52 is progressing well. It is now possible to fully download and verify BEP52 torrents using a magnet link. Metadata, and v2 piece hashes, can be dynamically requested from peers.

General improvements

  • The most frequently invoked BitField method, BitField.NAnd has been improved to fast-path several common cases.
  • The BitField class has been refactored to follow the same pattern as Memory and ReadOnlyMemory. BitField class is mutable and can be transparently cast to ReadOnlyBitfield.

What's Changed

Full Changelog: release-v3.0.0-alpha-0158...release-v3.0.0-alpha-0217

v3.0.0-alpha-0158

03 Apr 09:03
Compare
Choose a tag to compare
v3.0.0-alpha-0158 Pre-release
Pre-release

What's Changed

  • V2 only magnetlink support by @jpmikkers in #521
  • Removed the obsolete API to use an alternative PieceWriter.
  • ClientEngine.RestoreStateAsync has an overload which takes a Factories object
  • IDhtEngine has been wrapped in a simpler way, ensuring users don't get confused as to whether or not they need to manage it themselves.
  • Saving/Loading FastResume data is now a proper async operation, reducing the possibility of improper/unsafe use.
  • Hybrid torrents were loaded as V2 only torrents, but when verifying pieces the engine still attempted to validate both V1 and V2 hashes, which caused every piece to fail. This has been fixed and now only the V2 hashes are validated in this scenario.
  • V2 hashes are truncated before being sent as part of an Announce or Scrape request. Thanks to @jpmikkers .

NOTE: This hasn't been released on NuGet.org as they API is still changing and BitTorrent V2/BEP52 support is not complete yet.

Full Changelog: release-v3.0.0-alpha-0142...release-v3.0.0-alpha-0158

v3.0.0-alpha-0142

30 Mar 22:51
Compare
Choose a tag to compare
v3.0.0-alpha-0142 Pre-release
Pre-release

General

First release of the new 3.0 series. Adds support for BitTorrent V2 (BEP52) torrents as well as many performance, reliability and extensibility improvements.

The library has been optimised for modern .NET frameworks, with significant performance improvements available when running under .NET Core 3.x+ or .NET 5+ as compared to .NET 4.7.2.

It needs a once-over before being officially uploaded to nuget.org so i'm soft-releasing on GitHub first.

What's Changed

New Contributors

Full Changelog: release-v2.0.0...release-v3.0.0-alpha-0142

v2.0.5

27 Mar 22:56
Compare
Choose a tag to compare

General

  • Backported a patch which ensures that all FileStreams are closed when a torrent transitions from Downloading to Seeding mode.
  • Backported a patch which ensures the same torrents cannot be loaded twice.
  • Backported a patch which discards empty strings when generating the path for files contained within a torrent. Some torrents (apparently created by ruTorrent, incorrectly prepend an empty bencoded string to in the BEncodedList representing the path for files in the torrent.

v2.0.4

13 Jan 22:21
d489f31
Compare
Choose a tag to compare

General

  • Fixed a bug where the dht cache could fail to be written correctly if different TorrentManager's are Stopped/Started concurrently. A workaround for the issue is to set EngineSettings.AutoSaveLoadDhtCache to false, and then manually save/load the dht node cache using ClientEngine.DhtEngine any time. Thanks to @razaqq for the bug report.

v1.0.30

07 Jan 11:05
Compare
Choose a tag to compare

General

  • Fixed a regression from v1.0.28 where Torrent.TorrentPath was not being set correctly. Patch provided by @samhocevar .

v2.0.3

13 Jan 22:26
Compare
Choose a tag to compare

General

  • Invalid characters are escaped when TorrentSettings.CreateContainingDirectory is enabled, and Torrent.Name contains characters which are not valid in paths. The path for each file contained within the torrent was already escaped correctly when generating ITorrentFileInfo.FullPath.
  • Adds a new property, TorrentManager.ContainingDirectory where the escaped path can be accessed.

v2.0.2

13 Jan 22:32
Compare
Choose a tag to compare

General

  • Workaround for a bug/regression in .NET 6.0 where HashAlgorithm.Initialize did not actually re-initialization the underlying provider correctly. ( dotnet/runtime#62397 )
  • Small tweak to the DHT engine to ensure it does not report a 'Ready' status if bootstrapping into the DHT table actually fails.