Skip to content

release-v3.0.0-beta-0034

Pre-release
Pre-release
Compare
Choose a tag to compare

What's Changed

  • Set up CI with Azure Pipelines yaml by @alanmcgovern in #552
  • Tidy up DiskWriter by @alanmcgovern in #557
  • Small perf and memory optimisations by @alanmcgovern in #558
  • Added more tweaks to TorrentCreator to improve how events are emitted after the recent refactorings.
  • Misc API changes to migrate some classes to structs, and some structs to readonly structs.
  • Migrated PiecePicker to exclusively use PieceSegment rather than BlockInfo. Selecting pieces just needs the piece index and block index. It does not need the block length, which is what BlockInfo provides. BitTorrent V2 makes block length a much more complex thing to define.
  • Updated how the built-in disk writer handles concurrency when writing to the same file. When targeting .NET 6.0 and above the new, higher performance, RandomAccess API is used to read/write data. For .NET versions older than 6.0 multiple concurrent FileStreams are opened to allow safe concurrent reads/writes.
  • AllowedFast messages are now combined into an AllowedFastBundle to save a small amount of memory
  • Messages used to be decoded using a Dictionary lookup. This was converted to a simple array lookup, which makes it a much cheaper operation for one of the most commonly called codepaths in the library.

Full Changelog: release-v3.0.0-beta-0010...release-v3.0.0-beta-0034