Ktoml Versions Save

Kotlin Multiplatform parser and compile-time serializer/deserializer for TOML format (Native, JS, JVM) based on KxS

v0.5.1

5 months ago

Important

  • Updated Kotlin to version 1.9.22 in https://github.com/akuleshov7/ktoml/pull/250

  • A bunch of bug fixes, infra and logging enhancements.

  • Enhanced Map decoding: Now, you can decode key-value pairs and tables to Map without prior knowledge of their names.

@Serializable
data class MyClass(
    val a: Map<String, Map<String, String>>
)
[a]
    [a.innerTable]
        d = 5
    [a.otherInnerTable]
        d = "String"
@Serializable
@JvmInline
value class Test(val myTest: Info)
ACTIVITY_COMPOSE = {}

Enhancements

Bugfixes

Infra

New Contributors

Full Changelog: https://github.com/akuleshov7/ktoml/compare/v0.5.0...v0.5.1

v0.5.0

1 year ago

Breaking changes

  • In this release, we have made some changes to the library's API and removed old deprecated methods;
  • For instance, we removed methods that used the deprecated TomlConfig and left only those that use TomlInputConfig or TomlOutputConfig;
  • Additionally, we have started to stream data during decoding and parsing, which should improve performance;
  • However, this may affect the way you use some ktoml methods.

Changes that deserve your attention

:heavy_exclamation_mark: Now toml-file is only one of the example for reading the data from source. For your particular case you can implement your own source provider based on okio.Source. For this purpose we have prepared toml-source module and implemented an example with java streams for JVM target.

// add com.akuleshov7:ktoml-source to your project
import com.akuleshov7.ktoml.source

val resultFromString = TomlFileReader.decodeFromSource<MyClass>(serializer(), /* your source */)
val resultFromList = TomlFileReader.partiallyDecodeFromSource<MyClass>(serializer(),  /* your source */, /* table name */)

What else is new

Infrastructure changes

Full Changelog: https://github.com/akuleshov7/ktoml/compare/v0.4.1...v0.5.0

v0.4.1

1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/akuleshov7/ktoml/compare/v0.4.0...v0.4.1

v0.4.0

1 year ago

Functional changes

Fixes

Internals

New Contributors

Full Changelog: https://github.com/akuleshov7/ktoml/compare/v0.3.0...v0.4.0

v0.3.0

1 year ago

Awesome release with serialization, finally! 🤞 ❤️ Ktoml now supports it!

What's Changed

New Contributors

Full Changelog: https://github.com/akuleshov7/ktoml/compare/v0.2.13...v0.3.0

v0.2.13

1 year ago

Minor release to add new targets and support new Kotlin version

What's Changed

New Contributors

  • @Wavesonics

Full Changelog: https://github.com/akuleshov7/ktoml/compare/v0.2.12...v0.2.13

v0.2.12

2 years ago

Technical release with refactoring, new fundamental logic and library migrations

Main functional features

Main technical features

  • Kotlin updated to 1.6.21
  • New configuration mechanism introduced instead of TomlConfig (it's now deprecated)
  • New fundamentals for serialization logic were added. Encoding will be introduced in future releases

@bishiboosh @akuleshov7 @NightEule5 thank you for this outstanding contribution!

v0.2.11

2 years ago

Urgent hotfix release

Thanks to the @JakeWharton for the reported issue

v0.2.10

2 years ago

What's done:

  • Huge refactoring and base mechanisms for the serialization; d9537792f5d125c4f520b99fe302906d76320a07 cc6e05a5af8c93443a962e84807205b3204db9fd
  • BREAKING: Renaming and deprecating several class, mostly focused on exceptions; cc6e05a5af8c93443a962e84807205b3204db9fd
  • Adding the support for empty TOML; 2295a7499642e4a3231f01fc85b3e591102493ef
  • Creating the parser and the support in AST for ArrayOfTables; 0bf142f0a09e86ae20df597e9a86cdb4ab269c91 a76f5e8878d66e179e34a52f24de42e41c765744
  • Support for inline tables with several limitations (excluding nested inlining). 0ef414b3c7044a62452e8c97beee9e1c92508153
  • Minor fixes and updates;

Contributors to this release: @NightEule5 @Peanuuutz @vitusortner @akuleshov7

v0.2.9

2 years ago

What's done:

  • Hotfixes for automated release process