News¶
3.2.0 • 32-bit enum sets and weak map improvements
EnumSet
- Added
BitSet32.of()which accepts an iterable (!205) - Added
.toSet()and.toMutableSet()(!205) - Added
enumSetOf()and.toEnumSet()(#170, !206) - Optimized
enumSetOf(Foo.entries)(!206) - Optimized 32-bit
EnumSet(#170, !206)
Weak
- Added
WeakRef.isEmpty()andWeakRef.isNotEmpty()(!207) - Added
WeakValueHashMap(#178, !225) - Added
toString(),equals()andhashCode()onFakeWeakRef(!225) - Documented the thread safety of
WeakRefandWeakMap(#180, !225) - Added a wrapper for the JVM
WeakHashMap(#179, !226) - Added a wrapper for the JS
WeakMap(#179, !226)
Dependencies
- Kotlin 2.2.21
3.1.0 • WasmJS weak references and the new documentation website
Weak
Documentation
- Moved the documentation website to https://pedestal.opensavvy.dev (!199)
Dependencies
- Kotlin 2.2.0
- KotlinJS 2025.7.6
3.1.1 • Fixed documentation website deployment
Documentation
- Fixed deployment to the new documentation website (!202)
3.0.0 • Support for more platforms
Breaking changes
- Removed Spine (was deprecated, moved to other coordinates, !163)
- Stripped down Logger (was deprecated, !179)
- Removed State Arrow (all functionality has been moved into State, !163)
- Removed deprecated methods (!163)
Weak
Weak is a new module containing weak references and related algorithms.
EnumSet
EnumSet is a new experimental module with memory-efficient bitfields and enum sets.
3.0.0-rc.1 • Stable weak references, stripped down logger
Progress
State
Cache
Backbone
Weak
Logger
The logger library has been stripped down to a minimal println-based implementation (08ac9d92, !179).
It was deprecated for a while and was blocking us from supporting more platforms.
In the future, Sentier will take its place.
Dependencies
- KotlinJS 2025.5.8
- KotlinX.Datetime 0.6.2
- KotlinX.Coroutines 1.10.2
- Lincheck 2.39
- Arrow 2.1.2
- Slf4J 2.0.17
3.0.0-alpha.2 • BitSet32, documentation improvement and more Kotlin Native platforms
EnumSet
:enumset is a new module which will implement performant Set implementations for small integer sets and for enums.
It is not yet complete as of this release.
Weak
Documentation
- Mention the Weak module in the main README (!170)
- Fix links in the main README (#160, !170)
- Add copyright headers in all files (!173)
Dependencies
- Kotlin 2.1.10 (143f6dd3)
- KotlinX.Coroutines 1.10.1 (9e53816c)
- KotlinJS Wrappers 2025.1.4 (5e855377)
- Prepared 2.0.0-alpha.2 (ae0a1c8d)
- Slf4J 2.0.16 (81c6f352)
3.0.0-alpha.1 • Removal of deprecated code and testing improvements
Breaking changes
- Removed the deprecated Spine modules (#158, 17c3ec57, !163)
- Removed the unused tester module (!163)
- Removed the unused state-arrow module (!163)
- Removed deprecated cache and state methods (!163)
Testing
- Better cache tests using Lincheck (#80, !133)
- Rewrite all tests to use Prepared instead of kotlin-test (#136, #137, !120, !139, !163)
Documentation
- Link to versioned documentation in module headers (!160)
Dependencies
- Kotlin 2.0.20
- KotlinX.Datetime 0.6.1
- KotlinX.Coroutines 1.9.0
2.3.0 • Experimental Progressive holder and the new Weak module
Progress
- Experimental Progressive holder class (#144, !136)
- Experimental helpers to capture progress into a Flow (!136)
- Increased test coverage (!142)
State
- Experimental conversions from Progressive, Outcome and ProgressiveOutcome (!136)
- Increased test coverage (!142)
Weak
Pedestal Weak is a new module to use weak reference and associated data structures from common Kotlin code!
- Experimental WeakRef and SoftRef (#152, !147)
- Experimental WeakMap (#153, !147)
- Experimental pure Kotlin implementation of WeakKeyMap (!147)
- Helpers to test weak data structures (!147)
Dependencies
- KotlinX.Datetime 0.6.0 (!143)
- KotlinX.Coroutines 1.8.1 (!143)
- KotlinX.Serialization 1.7.1 (!143)
- Prepared 1.3.0 (!143)
2.2.2 • Bug fixes, Kotlin 2.0.0
Build and deployment
- Fixed JVM tests not running (ec557993, !129)
- Enable code coverage for all modules (#142, !129)
- Migrate Progress tests to Prepared (778387b1, !129)
- Stop publishing the
testermodule (89f4d925, !119)
Dependencies
- Kotlin 2.0.0 (55a01666, !70)
- Slf4J 2.0.13 (00733016, !132)
- Arrow 1.2.4 (3884e8a6, !132)
- Logback Classic 1.5.6 (983d8f98, !132)
- KotlinX.Datetime 0.5.0 (03dbf236, !132)
- KotlinX.Coroutines 1.8.0 (03dbf236, !132)