Releases: reactiveui/Akavache
v6.0.17-beta
Whats new in this release:
Big changes are the support of the System.Reactive 4.0.0 version, .NET Standard support, we now use Microsoft concurrent collections instead of our own, and minimum version of UWP has been updated.
Documentation
- docs: Removed WinRT support (#323) @ghuntley
- docs: Fix a typo in README.md. (#341) @sqc1999
- docs: added BlobCache.ForcedDateTimeKind to README.md (#353) @kjeremy
- docs: Added clarification to the info on UserAccount (#359) @mellson and @appbureauet
Fixes
- fix: use SQLitePCL.Batteries_V2.Init() instead of the original (#338) @ericsink
- fix: Update sourcelink support (#417) @glennawatson
- fix: Use Task.Run to start OperationQueue. (#407) @grokys
New Features
- feature: Update to support .NET Standard (#367) @PureWeen
- feature: now using Microsoft concurrent containers instead of custom ones @PureWeen
Housekeeping Items
- housekeeping: Fix the cake script system and deployment @PureWeen @onovotny
- housekeeping: Up the required .net version from 4.5 to 4.5.2 (#367) @PureWeen
- housekeeping: set UWP min version to 10.0.10586.0 (#367) @PureWeen
- housekeeping: Now use System.Reactive 4.0.0 (#418) @PureWeen and @clintonrocksmith
- housekeeping: Use MsBuild.Sdk.Extras for the build system. (#419) @PureWeen
Thanks to all involved.
5.0.0
As part of this release we had 14 issues closed.
Breaking changes
- #317 Update the SQLite dependency to support Android 7
- #291 Akavache 5.0 Discussion
- #283 Remove the support for WinRT80, since it can't even be opened in VS2015
Feature
- #255 Allow UTC DateTimes to be forced.
Bugs
- #282 Pin the Splat dependency in the nuspec file to the same version we're building Akavache with
- #258 InsertAllObjects self recursion
Improvements
- #319 Implemented automatic CI release workflow
- #318 Implemented continuous integration
- #289 Index the TypeName in the database to make bulk object queries faster
- #288 Added CacheElement.Expiration index
- #260 Lazily initialize the various SQLite operations
- #259 Remove some unused code
Documentation
Where to get it
You can download this release from nuget.org
Akavache 4.1.2
Akavache 4.1.1
Akavache 4.1.0
What's New
Xamarin.iOS / Xamarin.Mac 64-bit support
Akavache now supports the Xamarin Unified profile for iOS and Mac - if you use the Migration tool, it is highly advised to remove and re-add the Akavache packages manually.
Bug Fixes
- Fix DownloadUrl and friends to correctly store content
Akavache 4.0.4
What's New
- Add a feature to DownloadUrl to specify an explicit key (#181, thanks @RocketPop)
- Ensure that GetCreatedAt never throws (#184, thanks @flagbug)
Akavache 4.0.3
What's New
Bug Fixes
Akavache 4.0.2
Akavache 4.0.1
What's New
Bug Fixes
- Fix several bugs related to using Akavache.Sqlite3 on Windows Phone 8.1 (WinRT)
Akavache 4.0
Welcome to Akavache 4.0
After 8 months of work and 424 commits from 7 authors, Akavache 4.0 is now released! Thanks to the contributors for this release:
- Johan Laanstra
- Oren Novotny
- Brendan Forster
- Phil Haack
- Herman Banken
- Oskar Hermansson
In particular, a huge thanks goes to Johan, who migrated the SQLite-based backend to Eric Sink's SQLitePcl.Raw - a ton of work!
A Universal Akavache
Akavache 4.0 now supports a native SQLite on all platforms, as well as including support for new platforms:
- Xamarin.Android
- Xamarin.iOS
- Xamarin.Mac
- Xamarin Forms (iOS + Android + WP8)
- .NET 4.5
- Universal Windows Apps (WPA81)
- Windows Phone 8.0 Apps (Silverlight-based)
- Windows Store Apps (WinRT)
Akavache is also much smaller, because it no longer depends on ReactiveUI, instead depending on a much smaller library called Splat. Akavache also has now moved to the latest version of the Reactive Extensions, v2.2.5.
SQLite Performance is Significantly Improved
The SQLite driver has been completely rewritten in Akavache 4.0 for performance, especially when used by multiple threads at the same time. Synthetic benchmarks on the new SQLite backend show that it is 8x faster at reading random data, and a whopping 82x faster than the previous version at writing random data.
This improvement was done without any on-disk metadata changes - existing SQLite databases are immediately compatible. This new driver also completely resolves the "locking" issues that people would see when executing many operations in parallel.
Garbage Collection and Cleanup
Akavache now allows applications to explicitly schedule cleanup of the underlying database, via a new Vacuum
API. This will drop all expired keys from the database, as well as its name implies, execute a VACUUM
operation on SQLite to compact the database.
Migration Notes
- Akavache now no longer ships the deprecated filesystem backend. You can now find this backend in the
Akavache.Deprecated
NuGet package. You should plan to move away from this backend and into the SQLite-based backend in your next release. GetAllKeys
is now an asynchronous operation.TestBlobCache
is now calledInMemoryBlobCache