Releases: reactiveui/Akavache
Akavache 3.2.0
What's New
Akavache.Portable.dll is no more, Long Live Akavache.dll
Starting with this release, Akavache Core is now always just Akavache.dll
. Instead of a separate Akavache.Portable.dll
that you include into every build, there is now a portable version of Akavache.dll
. Link to the portable version in your PLibs and the platform versions in your apps.
Bug fixes
- Work around a bug in the Xamarin AOT compiler which would cause failures in Xamarin.iOS on device
- Fixed a bug resulting from the latest Splat update where using Bitmap loading would result in a compiler error
- Fix package references that were missing
Akavache 3.1.2
What's New
Bug Fixes:
- Ensure that GetAndFetchLatest uses the correct cache key (#89, thanks @nigel-sampson)
- Object invalidation should use type-prefixing (#91, thanks @nigel-sampson)
Akavache 3.1.1
What's New
Bulk Operations
BlobCache now supports overloads and new methods to add / get / invalidate multiple objects in the same API call. Previously if you wanted to insert many objects into the cache at the same time, it could be potentially very expensive / wasteful. Check out #79 for the details. For example:
var interestingKeys = await BlobCache.UserAccount.GetObjectsAsync<string>(new[] { "Foo", "Bar", "Baz", });
interestingKeys["Foo"]
>>> It worked!
Speed!
Akavache now correctly parallelizes connections to SQLite as well as fixes some threading errors that you might have been seeing (#66).
Hide our version of SQLite3
Our version of @praeclarum's SQLite3 bindings were exposed as public classes, which conflicted with the official versions, this release makes them internal (#72).
Modern Xamarin support
Akavache is now built against the official Xamarin Rx binaries. This means that on MonoMac, you need to be up-to-date on the latest Mono install.
Other Stuff
Akavache 3.0.2
What's New
Bug Fixes
- Fix bugs around manual dependency registration
- Correctly handle invalidation in GetAndFetchLatest
- Handle unsynchronized access to variable in SQLite3 driver
Akavache 3.0.1
What's New
Akavache 3.0 is now released! A special thanks to @onovotny for his huge contribution to PLib support in this release.
Portable Library Support
Akavache 3.0 can now be used with Portable Libraries, including handling images and downloading URLs, via the Splat helper library. This means that with Akavache, nearly all of your serialization and network access layer can be cross-platform.
Cleaned up initialization support
Just like in ReactiveUI 5.0, Akavache now has a much cleaner initialization setup, which is also reliant on RxUI 5.0's RxApp.DependencyResolver
. Many libraries now initialize themselves automatically if possible (on iOS / Cocoa), and other platforms now only require you to set BlobCache.ApplicationName
.
Platforms Supported
Note that for this release, .NET 4.0-based platforms such as Silverlight and WP7 are no longer supported. Bug fixes will still be ported to the Akavache 2.x series when appropriate, you can use the NuGet Package Console to configure your app to only download 2.x updates. Here are the officially supported platforms:
- Xamarin.iOS
- Xamarin.Mac
- Xamarin.Android
- .NET 4.5 Desktop (WPF)
- Windows Phone 8
- Windows Store (WinRT)
Akavache 2.6.7
What's New
Notable changes since 2.6.5
- Handle serializing simple types as values in SQLite3 backend
- Correctly handle opening paths containing Unicode characters in SQLite3 backend
- Fix race condition on dispose where disposing a single BlobCache could affect other blob caches.
- Remove WP8 SQLite3-based backend, as WP8 disables P/Invoke on device at runtime.
Akavache 2.6.5
What's New
Bugfix release, fixes problem with using BlobCache.Secure
Akavache 2.6.4
What's New
- Akavache.SQLite3 now configures itself AutoMagically™ if it's included in your project, no need to manually set
BlobCache.LocalMachine
et al. - Remove key operation serialization from old-school Akavache - you need to
await
all calls to BlobCache, no more sloppy coding! - Support for Xamarin.Mac, Xamarin.iOS, and Xamarin.Android - on Cocoa-based platforms, your
ApplicationName
is automatically configured to be your Bundle ID, no need to set it by-hand. - Fix a bug in SQLite3 engine where
GetOrFetchObject
with an expiration wouldn't work.
Akavache 2.6.2
What's New
Completion for Object Methods
Now all object invalidation methods (like InvalidateObject
, InvalidateAllObjects
, etc) return IObservable<Unit>
so you can await
them
Miscellaneous fixes
- Fixes to PersistentBlobCache Dispose so that it properly flushes metadata on exit
2.6.1
What's New
Shut It All Down
Akavache now has an easy way to shut itself down. Make sure to run this on app shutdown:
BlobCache.Shutdown().Wait()
Or if you're on WinRT:
var deferral = e.SuspendingOperation.GetDeferral();
await BlobCache.Shutdown();
deferral.Complete()
Other Stuff
- Fix a bug where in certain situations, Akavache would deadlock (2917a5e)