Skip to content

Commit 3db45b0

Browse files
committed
Prepare 2.6.0 release
1 parent 5b03bea commit 3db45b0

3 files changed

Lines changed: 100 additions & 7 deletions

File tree

CHANGELOG.md

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,60 @@
11
# CHANGELOG
22

3+
## Version 2.6.0 (2025-12-16)
4+
- Update dependencies [[#206]][206]:
5+
- Kotlin `2.2.20` -> `2.2.21`
6+
- Fixes `Base32.Crockford` check symbol validation when `Feed.doFinal` is called [[#179]][179]
7+
- Fixes `EncoderDecoder` and `EncoderDecoder.Config` equals/hashCode overrides [[#180]][180]
8+
- Fixes 64-bit integer overflow for `Base32` and `Base64` implementations of
9+
`Config.decodeOutMaxSizeProtected` [[#183]][183]
10+
- Fixes `LineBreakOutFeed` not being reset as intended when `Encoder.Feed.flush` is
11+
called [[#193]][193]
12+
- Fixes `Encoder.Feed` and `Decoder.Feed` implementations holding onto their respective
13+
`OutFeed` callback references after `close` has been called [[#194]][194]
14+
- Fixes `Encoder.Companion.encodeToString` back-fill implementation of its temporary
15+
`StringBuilder` buffer [[#220]][220]
16+
- Adds the `StringBuilder.wipe` extension functions
17+
- Aligns `Base16`, `Base32`, and `Base64` builder implementations' syntax/layout [[#176]][176]
18+
- Deprecates all old builders and replaces them with:
19+
- `Base16.Builder`
20+
- `Base32.Crockford.Builder`
21+
- `Base32.Default.Builder`
22+
- `Base32.Hex.Builder`
23+
- `Base64.Builder`
24+
- Deprecates `Base16`, `Base32.Crockford`, `Base32.Default`, `Base32.Hex`, and `Base64`
25+
public constructors [[#177]][177]
26+
- Increases all `DeprecationLevel.WARNING` to `DeprecationLevel.ERROR` [[#178]][178]
27+
- Moves `Feed.use` extension function's `finally` logic to internal function [[#189]][189]
28+
- Renames `EncoderDecoder.Config.encodeOutSize` to `encodeOutMaxSize` [[#196]][196]
29+
- Deprecates `encodeOutSize`
30+
- Adds ability to configure temporary buffer back-fill behavior when using `:core`
31+
module encoding/decoding extension functions [[#190]][190]
32+
- Adds `EncoderDecoder.Config.maxDecodeEmit` constructor parameter [[#208]][208] [[#215]][215]
33+
- Adds `Decoder.Companion.decodeBuffered` and `Decoder.Companion.decodeBufferedAsync` extension
34+
functions [[#210]][210] [[#226]][226] [[#228]][228] [[#235]][235]
35+
- Adds ability to configure `LineBreakOutFeed` reset behavior when `Encoder.Feed.flush`
36+
is called [[#216]][216]
37+
- Deprecates `LineBreakOutFeed` constructor and adds new `resetOnFlush` parameter
38+
- Adds `EncoderDecoder.Config.lineBreakResetOnFlush` constructor parameter
39+
- Adds to `EncoderDecoder` implementations' `Builder` the `lineBreakReset` function to configure
40+
- Adds `UTF-8` encoding/decoding [[#170]][170] [[#185]][185] [[#200]][200] [[#201]][201] [[#202]][202] [[#203]][203]
41+
- Module `:utf8` contains the `UTF8` implementation of `EncoderDecoder`
42+
- Adds the `MalformedEncodingException` type [[#217]][217]
43+
- Removes checked exception `@Throws` annotation for `EncodingException` from
44+
`Encoder.Companion.encodeToString` and `Encoder.Companion.encodeToCharArray` extension
45+
functions [[#218]][218]
46+
- Adds `EncoderDecoder.Config.maxEncodeEmit` constructor parameter [[#223]][223]
47+
- Adds `Encoder.Companion.encodeBuffered` and `Encoder.Companion.encodeBufferedAsync` extension
48+
functions [[#232]][232]
49+
- Adds partial array encoding [[#233]][233]
50+
- All `Encoder.Companion` extension functions can now take additional `offset` and `len` arguments
51+
- Adds partial text decoding [[#234]][234]
52+
- All `Decoder.Companion` extension functions can now take additional `offset` and `len` arguments
53+
- Performance improvements for `DecoderInput` [[#169]][169]
54+
- Performance improvements for `Base16` [[#186]][186]
55+
- Performance improvements for `Base32` [[#188]][188] [[#236]][236]
56+
- Performance improvements for `Base64` [[#187]][187] [[#236]][236] [[#237]][237]
57+
358
## Version 2.5.0 (2025-09-19)
459
- Update dependencies [[#167]][167]:
560
- Kotlin `2.1.10` -> `2.2.20`
@@ -242,4 +297,42 @@
242297
[166]: https://github.com/05nelsonm/encoding/pull/166
243298
[167]: https://github.com/05nelsonm/encoding/pull/167
244299
[168]: https://github.com/05nelsonm/encoding/pull/168
300+
[169]: https://github.com/05nelsonm/encoding/pull/169
301+
[170]: https://github.com/05nelsonm/encoding/pull/170
302+
[176]: https://github.com/05nelsonm/encoding/pull/176
303+
[177]: https://github.com/05nelsonm/encoding/pull/177
304+
[178]: https://github.com/05nelsonm/encoding/pull/178
305+
[179]: https://github.com/05nelsonm/encoding/pull/179
306+
[180]: https://github.com/05nelsonm/encoding/pull/180
307+
[183]: https://github.com/05nelsonm/encoding/pull/183
308+
[185]: https://github.com/05nelsonm/encoding/pull/185
309+
[186]: https://github.com/05nelsonm/encoding/pull/186
310+
[187]: https://github.com/05nelsonm/encoding/pull/187
311+
[188]: https://github.com/05nelsonm/encoding/pull/188
312+
[189]: https://github.com/05nelsonm/encoding/pull/189
313+
[190]: https://github.com/05nelsonm/encoding/pull/190
314+
[193]: https://github.com/05nelsonm/encoding/pull/193
315+
[194]: https://github.com/05nelsonm/encoding/pull/194
316+
[196]: https://github.com/05nelsonm/encoding/pull/196
317+
[200]: https://github.com/05nelsonm/encoding/pull/200
318+
[201]: https://github.com/05nelsonm/encoding/pull/201
319+
[202]: https://github.com/05nelsonm/encoding/pull/202
320+
[203]: https://github.com/05nelsonm/encoding/pull/203
321+
[206]: https://github.com/05nelsonm/encoding/pull/206
322+
[208]: https://github.com/05nelsonm/encoding/pull/208
323+
[210]: https://github.com/05nelsonm/encoding/pull/210
324+
[215]: https://github.com/05nelsonm/encoding/pull/215
325+
[216]: https://github.com/05nelsonm/encoding/pull/216
326+
[217]: https://github.com/05nelsonm/encoding/pull/217
327+
[218]: https://github.com/05nelsonm/encoding/pull/218
328+
[220]: https://github.com/05nelsonm/encoding/pull/220
329+
[223]: https://github.com/05nelsonm/encoding/pull/223
330+
[226]: https://github.com/05nelsonm/encoding/pull/226
331+
[228]: https://github.com/05nelsonm/encoding/pull/228
332+
[232]: https://github.com/05nelsonm/encoding/pull/232
333+
[233]: https://github.com/05nelsonm/encoding/pull/233
334+
[234]: https://github.com/05nelsonm/encoding/pull/234
335+
[235]: https://github.com/05nelsonm/encoding/pull/235
336+
[236]: https://github.com/05nelsonm/encoding/pull/236
337+
[237]: https://github.com/05nelsonm/encoding/pull/237
245338
[MIGRATION]: https://github.com/05nelsonm/encoding/blob/master/MIGRATION.md

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,47 +39,47 @@ Configurable, streamable, efficient and extensible encoding/decoding for Kotlin
3939
### Get Started
4040

4141
<!-- TAG_VERSION -->
42-
<!-- TODO: Add utf8 -->
4342

4443
```kotlin
4544
// build.gradle.kts
4645
dependencies {
47-
val encoding = "2.5.0"
46+
val encoding = "2.6.0"
4847
implementation("io.matthewnelson.encoding:base16:$encoding")
4948
implementation("io.matthewnelson.encoding:base32:$encoding")
5049
implementation("io.matthewnelson.encoding:base64:$encoding")
50+
implementation("io.matthewnelson.encoding:utf8:$encoding")
5151

5252
// Only necessary if you just want the abstractions to create your own EncoderDecoder(s)
5353
implementation("io.matthewnelson.encoding:core:$encoding")
5454
}
5555
```
5656

5757
<!-- TAG_VERSION -->
58-
<!-- TODO: Add utf8 -->
5958
Alternatively, you can use the BOM.
6059

6160
```kotlin
6261
// build.gradle.kts
6362
dependencies {
6463
// define the BOM and its version
65-
implementation(project.dependencies.platform("io.matthewnelson.encoding:bom:2.5.0"))
64+
implementation(project.dependencies.platform("io.matthewnelson.encoding:bom:2.6.0"))
6665

6766
// define artifacts without version
6867
implementation("io.matthewnelson.encoding:base16")
6968
implementation("io.matthewnelson.encoding:base32")
7069
implementation("io.matthewnelson.encoding:base64")
70+
implementation("io.matthewnelson.encoding:utf8")
7171

7272
// Only necessary if you just want the abstractions to create your own EncoderDecoder(s)
7373
implementation("io.matthewnelson.encoding:core")
7474
}
7575
```
7676

7777
<!-- TAG_VERSION -->
78-
[badge-latest]: https://img.shields.io/badge/latest--release-2.5.0-blue.svg?style=flat
78+
[badge-latest]: https://img.shields.io/badge/latest--release-2.6.0-blue.svg?style=flat
7979
[badge-license]: https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat
8080

8181
<!-- TAG_DEPENDENCIES -->
82-
[badge-kotlin]: https://img.shields.io/badge/kotlin-2.2.20-blue.svg?logo=kotlin
82+
[badge-kotlin]: https://img.shields.io/badge/kotlin-2.2.21-blue.svg?logo=kotlin
8383

8484
<!-- TAG_PLATFORMS -->
8585
[badge-platform-android]: http://img.shields.io/badge/-android-6EDB8D.svg?style=flat

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ POM_DEVELOPER_ID=05nelsonm
2727
POM_DEVELOPER_NAME=Matthew Nelson
2828
POM_DEVELOPER_URL=https://github.com/05nelsonm/
2929

30-
VERSION_NAME=2.6.0-SNAPSHOT
30+
VERSION_NAME=2.6.0
3131
# 0.1.0-alpha01 = 00 01 00 11
3232
# 0.1.0-beta01 = 00 01 00 21
3333
# 0.1.0-rc01 = 00 01 00 31

0 commit comments

Comments
 (0)