Skip to content

Commit f82571c

Browse files
committed
Update changelog with 3.0 changes
+semver: major
1 parent 035cada commit f82571c

File tree

1 file changed

+50
-3
lines changed

1 file changed

+50
-3
lines changed

CHANGELOG.md

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,60 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
## [Unreleased]
88

99

10+
## [3.0.0]
11+
There is a few changes to the public API, but most people shouldn't be affected by this unless they have extended/overriden functionality.
12+
Basic usage should not see any or only minor changes compared to v2.3.0.
13+
14+
Implemented async support for parsing/encoding.
15+
16+
Added build targets for .NET Core 2.1 and .NET Core 3.0 to take advantage of performance improvements
17+
in `Stream` and `Encoding` APIs for .NET Core 2.1 or later.
18+
19+
Rewrite of internal parsing for better performance, taking advantage of new `Span<T>`/`Memory<T>`
20+
types - faster parsing and less memory allocation.
21+
22+
Removed support for .NET Framework 4.5 and .NET Standard 1.3.
23+
Lowest supported versions are now .NET Framework 4.6.1 (4.7.2 highly recommended) and .NET Standard 2.0.
24+
25+
26+
### Added
27+
- Implemented parsing/encoding using `PipeReader`/`PipeWriter`
28+
- Added `BencodeReader` as replacement for `BencodeStream`
29+
- Added `IBObject.GetSizeInBytes()` method, returning the size of the object in number of bytes.
30+
31+
### Changed
32+
- Improved parsing/encoding performance
33+
- Reduced memory allocation on parsing/encoding
34+
- Made `BString`, `BNumber`, `BList` and `BDictionary` classes `sealed`
35+
- Made parse methods of `BencodeParser` virtual so it can be overriden if needed by anyone
36+
- Constructor `BString(IEnumerable<byte> bytes, Encoding encoding = null)` changed to `BString(byte[] bytes, Encoding encoding = null)`
37+
- Exposed value type of `BString` changed from `IReadOnlyList<byte>` (`byte[]` internally) to `ReadOnlyMemory<byte>`
38+
- Removed parse method overloads on `IBencodeParser` and added matching extension methods instead
39+
- Removed encode method overloads on `IBObject` and added matching extension methods instead
40+
- Torrent parse mode now default to `TorrentParserMode.Tolerant` instead of `TorrentParserMode.Strict`
41+
- Torrent related classes moved to `BencodeNET.Torrents` namespace
42+
43+
### Removed
44+
- Removed `BencodeStream` and replaced with `BencodeReader`
45+
- Dropped .NET Standard 1.3 support; .NET Standard 2.0 is now lowest supported version
46+
- Dropped .NET Framework 4.5 support; .NET Framework 4.6.1 is now lowest supported version (but 4.7.2 is highly recommended)
47+
- Removed most constructors on `BencodeParser` leaving only `BencodeParser(Encoding encoding = null)` and
48+
added `BencodeParser.Encoding` property to enable changing encoding. Parsers can still be added/replaced/removed
49+
through `BencodeParser.Parsers` property.
50+
51+
### Fixed
52+
- Parsing from non-seekable `Stream`s is now possible
53+
- Fixed issue parsing torrent files with non-standard 'announce-list' (#39)
54+
55+
1056
## [2.3.0] - 2019-02-11
1157
### Added
12-
- `BNumber` casting operators to `int?` and `long?`
58+
- Added `BNumber` casting operators to `int?` and `long?`
1359

1460

1561
## [2.2.9] - 2017-08-05
1662
### Added
17-
- Tolerant parse mode for torrents, which skips validation
63+
- Added tolerant parse mode for torrents, which skips validation
1864
- Save original info hash when parsing torrent
1965

2066
### Changed
@@ -75,7 +121,8 @@ and generally better usability; albeit a bit more complex.
75121
## [1.0.0] - 2015-09-19
76122

77123

78-
[Unreleased]: ../../compare/v2.3.0...HEAD
124+
[Unreleased]: ../../compare/v3.0.0...HEAD
125+
[3.0.0]: ../../compare/v2.3.0...v3.0.0
79126
[2.3.0]: ../../compare/v2.2.9...v2.3.0
80127
[2.2.9]: ../../compare/v2.2.0...v2.2.9
81128
[2.2.2]: ../../compare/v2.1.0...v2.2.2

0 commit comments

Comments
 (0)