5.1.0-alpha08 (2026-01-11)
Bug Fixes
- Propagate converter exceptions instead of hanging indefinitely #728
- Fix MutableStore.write() ignoring SourceOfTruth write failures #727
5.1.0-alpha07 (2025-09-20)
- Remove Kotlinx Datetime dependency #706
5.1.0-alpha06 (2025-02-27)
New Features
- Add WasmJS targeting capability #646
Bug Fixes
- Fix eager conflict resolution deadlock in mutable Store operations #679
Improvements
- Migrate test suite to Turbine testing library #672
- Remove deprecated BroadcastChannel usage #659
- Document extension functions in store.kt #669
- Update README with links to store.mobilenativefoundation.org #670
- Remove first paging iteration #671
- Update Kover to 0.9.0-RC and consolidate CI workflows #673
Dependencies
- Update Kermit to 2.0.5 #683
- Update JaCoCo to 0.8.12 #684
- Update Dokka to 1.9.20 #687
- Update kotlinx-datetime to 0.6.2 #688
- Configure Renovate for automated dependency management #676
5.1.0-alpha05 (2025-10-18)
Bug Fixes
- Fix potential deadlock in RealMutableStore #658
- Fix failing Node.js tests #665
- Fix typo in RealStore.kt #662
Dependencies
- Update Kermit to 2.0.4 #655
5.1.0-alpha04 (2025-07-07)
Important: This release corrects the unintentional minimum SDK increase from alpha03.
New Features
Improvements
- Add binary compatibility validator and convention plugins #645
- Lower JVM target to Java 11 #648
- Use Java 11 everywhere #649
Bug Fixes
5.1.0-alpha02 (2025-01-28)
- Release paging and core modules #600
5.1.0-alpha01 (2025-01-26)
New Features
- Support Paging #550
- Support custom error types #583
- Add cacheOnly option to StoreReadRequest #586
- Expose converter via StoreBuilder.from() function #594
Documentation
- MutableStore
- Validator
- Fallback Mechanism
- KMP support
- Conflict Resolution for store writes
- Removal of experimental duration APIs
- StoreResult.NoNewData
- Fix validator regression #573
5.0.0-beta02 (2023-07-21)
- Fix breaking changes with Source of Truth #560
5.0.0-beta01 (2023-05-19)
- Delegate memory cache implementation and provide a hybrid cache with automatic list decomposition as a separate artifact #548
5.0.0-alpha06 (2023-05-08)
- Separate MutableStoreBuilder from StoreBuilder #542
- Support Rx2 #531
- Introduce Fallback Mechanisms #545
5.0.0-alpha05 (2023-03-15)
- Target iOS Simulator
- Target Linux
- Make Bookkeeper optional
5.0.0-alpha04 (2023-02-24)
- Introduce MutableStore
- Implement RealMutableStore with Store delegate
- Extract Store and MutableStore methods to use cases
5.0.0-alpha03 (2022-12-18)
This release adds support for Store on iOS, JVM, and JS. Concepts and usage are unchanged from Store4. In a future release we will reintroduce support for local and remote writes with conflict resolution based on Google's offline first guidance.
- Target Android, iOS, JVM, JS
- Remove concept of Market
- Remove support for local and remote writes (temporary)
5.0.0-alpha02 (2022-12-04)
- Target iOS and JS
- Rename packages
5.0.0-alpha1 (2022-12-04)
- Introduce Market
- Support local and remote writes with conflict resolution based on Google's offline-first guidance
- Target Android and JVM
4.0.5 (2021-03-30)
- Update to Kotlin 1.6.10
- Store
4.0.4-KT15is the last version supporting Kotlin 1.5 - Store
4.0.1is the last version supporting Kotlin 1.4
- Store
4.0.4-KT15 (2021-12-08)
- Bug fixes and documentation updates
4.0.3-KT15 (2021-11-18)
- Update to Kotlin 1.5.31 and Coroutines 1.5.2
- Bug fixes and documentation updates
4.0.2-KT15 (2021-05-06)
Kotlin 1.5 introduced breaking changes in the experimental Duration apis we used 4.0.2-KT15 is a duplicate of 4.0.1 but compiled for kotlin 1.5 Version 4.0.1 is the last version compatible with Kotlin 1.4
- Fire off kotlin 1.5 compatible snapshot (#273)
4.0.1 (2021-05-06)
- Fix issues when upgrading to kotlin 1.5 (Deprecated duration api)
- Add piggyback to all stores
4.0.0 (2020-11-30)
- Update coroutines to 1.4.0, kotlin to 1.4.10 #242
4.0.0-beta (2020-09-21)
API change
- Remove need for generics with
Errortype (#220)
Bug Fixes and Stability Improvements
- Revert cache implementation to guava, rather than rolling our own (#200)
- Sample App improvements (#227)
4.0.0-alpha07 (2020-08-19)
New Features
- Add
StoreResult.NoNewDatato represent when a fetcher didn't return data. (#194) - Move
Fetcher-factories intoCompanionofFetcherinterface (#168)
Bug Fixes and Stability Improvements
- Fix a leak of non-global coroutine contexts. (#199)
- Update to Kotlin 1.4.0 and Coroutines 1.3.9 (#195)
- Update to Coroutines 1.3.5 and remove
@FlowPreviewand@ExperimentalCoroutinesApiannotations. (#166)
4.0.0-alpha06 (2020-04-29)
Major API change! (#123)
This release introduces a major change to StoreBuilder's API. This should be the LAST major API
change to store before
we'll move to beta.
- The typealias
Fetcherwas added to standardize the input type for aStoreBuilder SourceOfTruthin now a top level interface and part ofStore's public APIStoreBuildercan now only be created using aFetcherand optionally aSourceOfTruth- All the overloads for creating a
StoreBuilderwere moved toFetcherandSourceOfTruthas appropriate. - Rx artifacts were updated accordingly to match main artifacts.
4.0.0-alpha05 (2020-04-03)
Bug Fixes and Stability Improvements
- Contain @ExperimentalStdlibApi within relevant scope. (#154)
- Use AtomicFu to replace Java's AtomicBoolean and ReentrantLock (#147)
- migrate Multicast to Kotlin Test (#146)
- Remove Collections.unmodifiableMap (#145)
- Update AGP version (#143)
- Remove some unneeded java.util packages (#141)
4.0.0-alpha04 (2020-04-03)
New Features
- Add
asMapfunction to Cache for backward compat (#136) - Migrate filesystem library to use kotlin.time APIs (#133)
- Rx get fresh bindings (#130)
- Migrate cache library to use kotlin.time APIs (#129)
- Update sample app (#117)
Bug Fixes and Stability Improvements
- Use Kotlin version of ArrayDeque in ChannelManager (#134)
- Kotlin 1.3.70 and other dependencies updates (#125)
- Make SharedFlowProducer APIs safe (#121)
- Ensure network starts after disk is established (#115)
- Update to Gradle 6.2 (#111)
4.0.0-alpha03 (2020-02-13)
New Features
- Added Rx bindings, available as store-rx2 artifact (#93)
- Bug fixes (#90)
- Add ability to delete all entries in the store (#79)
4.0.0-alpha02 (2020-01-29)
New Features
- Introduce piggyback only downstreams to multicaster and fix #59 (#75)
- Change flow collection util to drain the flow (#64)
- Readme improvements (#70, #72)
- Avoid illegal cast in RealStore.stream (#69)
- Added docs to MemoryPolicy.setMemorySize (#67) (#68)
4.0.0-alpha01 (2020-01-08)
New Features
- Store has been rewritten using Kotlin Coroutines instead of RxJava
3.1.0 (2018-06-07)
New Features
- (#319) Store can now be used in Java (non-Android) projects
- (#338) Room integration for Store
Bug Fixes and Stability Improvements
- (#315) Add missing reading of expire-after-policy when creating a NoopPersister
- (#311) Update Kotlin & AGP versions
- (#328) Fix memory policy default size
- (#329) Adding docs to README for setting 1.8 compatibility
- (#273) Adds comments to the sample app
- (#336) Fixes errors in README
3.0.1 (2018-03-20)
Bug Fixes and Stability Improvements
- (#311) Update Kotlin & AGP versions
- (#314) Fix issues occured from RxJava1 dependency
3.0.0 (2018-02-01)
New Features
- (#275) Add ParsingFetcher that wraps Raw type Parser and Fetcher
Bug Fixes and Stability Improvements
- (#267) Kotlin 1.1.4 for store-kotlin
- (#290) Remove @Experimental from store-kotlin API
- (#283) Update build tools to 26.0.2
- (#259, #261, #272, #289, #303) README + documentation updates
- (#310) Sample app fixes
3.0.0-beta (2017-07-26)
New Features
- (#229) Add store-kotlin module
- (#254) Add readAll / clearAll operations for a particular BarCode type
- (#250) Return object with meta data
- Create Code of Conduct
Bug Fixes and Stability Improvements
- (#239) Fix NoClassDefFoundError for StandardCharsets GsonBufferedSourceAdapter
- (#243) Update README for Rx2
- (#247) Remove intermediate streams
- (#246) Update to Moshi 1.5.0
- (#252) Fix stream for a single barcode
3.0.0-alpha (2017-05-23)
This is a first alpha release of Store ported to RxJava 2.
New Features
- (#155) Port to RxJava 2
- (#220) Packages have been renamed to store3 to allow use of this artifact alongside the original Store
- (#185) Return Single/Maybe where appropriate
- (#189) Add lambdas to Store and Filesystem modules
- (#214) expireAfterAccess added to MemoryPolicy
- (#214) Deprecate setExpireAfter and getExpireAfter -- use new expireAfterWrite or expireAfterAccess, see #199 for MemoryPolicy changes
- (#214) Add Raw to BufferedSource transformer
Bug Fixes and Stability Improvements
- (#214) Fix networkBeforeStale on cold start with no connectivity
- (#214) Add a missing source.close() call
- (#164) FileSystemPersister.persisterIsStale() should return false if record is missing or policy is unspecified
- (#166) Remove apt dependency and use annotationProcessor instead
- (#214) Standardize store.stream() to emit only new items
- (#214) Fix typos
- (#214) Close source after write to filesystem
- The change log for Store version 1.x can be found here.