Releases: couchbase/couchbase-lite-net
1.1
Couchbase Lite 1.1 saw a major advancement in the storage threading model over 1.0. Reads and writes are now much more performant and safer than previously thanks to a new single thread queueing system that schedules reads and writes to the actual DB engine, which in and of itself is not thread safe. This was the first release that was overseen by the new .NET maintainer, and added support for an entire new platform (Unity 3D). With the Unity3D release, Couchbase is now the best complete server to device stack for applications and games. Support for IL2CPP unfortunately did not make it into this release, but the need has been realized and solutions are being evaluated. Furthermore, a component missing from .NET but available in Java and iOS native (P2P replication) has been added in 1.1. Now you can manage P2P replication via Bonjour and local wifi to all the platforms that .NET can reach. Furthermore there were a number of performance enhancements and issues resolved. This is only the beginning too, we have some gigantic plans to share with you in the near future and coming releases so don't touch that dial, or you might miss something game-changing!
As part of this release we had 22 issues closed.
Enhancements
- #425 Add NSFileProtection support for Xamarin.iOS
- #409 Add migration support for iOS 1.1 SQLite db schema
- #405 Add in replication optimization from iOS version
- #392 Make Database.close() method public (API Change)
- #387 Indexing scales poorly, due to suboptimal SQL DELETE query
- #380 Add HttpListener implementation
- #360 Support for Unity 3D
- #348 Refactor StorageEngine to segregate reads and writes
- #83 Add Router support
Bugs
- #423 RemoteCheckpointDocID not using custom channel sets when computing checkpoint
- #421 Pull sync not working after upgrade from 1.04 to 1.1-pre2 in C# service
- #406 VS can not load sample
- #397 Setting Pusher.DocIds does not filter which docs are actually pushed
- #396 In Owin, getting "Unable to create a storage engine, fatal error" message
- #388 Updating a document using Update() unexpectedly results in a conflict
- #379 ToLiveQuery() doesn't preserve query's attributes
- #372 NullReferenceException when trying to call SetCookie on a Replication object from a C# console application
- #358 Changes performed offline don't sync when going online.
- #335 Intermittent deadlock during perf test
- #319 Not all new documents get queued for pushing to the server sometimes
- #257 Database.RunInTransaction() saves data when the delegate returns false.
- #196 Add no_attachments column support to Database.UpdateAttachments
You can download this release from nuget.org:
Requirements
Couchbase Lite for .NET 1.1 is compatible with the following .NET runtimes and operation systems:
.NET Runtime | OS |
---|---|
Mono (.NET 3.5+) | Linux |
Mono (.NET 3.5+) | OS/X |
MSFT 3.5+ | Windows Desktop |
Xamarin | iOS |
Xamarin | Android |
Unity 4.6 Pro | iOS |
Unity 4.6 Pro | Android |
Unity 4.6 Free/Pro | Windows Desktop |
Unity 4.6 Free/Pro | OS X |
Unity 4.6 Free/Pro | Linux |
Unity 5 Personal/Pro | iOS |
Unity 5 Personal/Pro | Android |
Unity 5 Personal/Pro | Windows Desktop |
Unity 5 Personal/Pro | OS X |
Unity 5 Personal/Pro | Linux |
Support Statement
Version 1.0 was released in May, 2014. With this release of version 1.1, the support window for 1.0 expires in December 2015.
Release | Release Date | End of Life Date |
---|---|---|
1.0 | May 2014 | June 2016 |
1.1 | June 2015 |
Couchbase Lite Unity 1.0-beta1
More rigorous testing has resulted in the 1.0-beta1 release. For building the project from source please refer to the instructions in the wiki (Unity3D usage). A prebuilt version is attached.
Unity Support Three Players
This release of Unity support overcomes the multitude of AOT compiler mistakes that I encountered while compiling Couchbase Lite for Unity iOS (though I assume any AOT platform would have had the same problem, so I'm not picking on iOS in particular) and brings support to the following platforms:
Unity Standalone
Unity iOS
Unity Android
To build this project from source you must do the following:
Build the Couchbase.Lite.Unity project, it will contain 8 DLLs that you can use to target the standalone player. 7 of these DLLs are platform independent, but SQLitePCL.raw is platform dependent due to its native bindings. The one you find in the Unity project output will be the desktop version, so in Unity you must set it to only be imported for standalone. The iOS and Android versions are located in the vendor folder of Couchbase.Lite.Net35 (under SQLitePCL). Set those up to be imported only for iOS and Android respectively.
Furthermore, Windows doesn't come preinstalled with SQLite, so the native DLLs need to be deployed. The native sqlite3.dll files are also located in the above mentioned folder (sqlitex86 and sqlitex64 for x86/x64). Make sure those are imported in Unity only for their appropriate architecture.
Things to note: You must build with the Unity .NET 2.0 API compatibility level (subset will not compile, and will throw typeinitializationexceptions and such). You can find this setting under the player settings of each player (it is a shared setting so if you change it once, it changes everywhere). You must also add this string to the AOT compilation options under the iOS player settings: nimt-trampolines=8096
If you encounter any issues please use the issue tracker on GitHub to report them. I have attached a build of this release.
Standalone Unity Support with Replication
Replication now works with Desktop targets. Mobile targets are still untested and therefore I have not included the needed binary for Android like last time. For convenience I once again included the compiled assemblies.
Initial Unity Support
This is an early preview of Unity integration. The attached zip file is a compiled version for use with a Unity project. Some things to note:
-
The zip file attached is the compiled version for use with Unity projects. For now this is the only version that will work. You might have luck compiling it yourself but you will need to be sure to switch out the SQLitePCL DLL if you want to try Android.
-
Not all features are working yet. Replication, in particular, is not quite ready yet. I'm hoping to have this in a better state by the end of the week.
1.0.4 Release for the Xamarin Component Store
This is the release of 1.0.4 for the Xamarin Component Store.
The Nuget release will be substantially the same, but will change the upstream dependency on SQLitePCL.raw to the next version that supports .NET 4.5 on *nix. Currently, 0.7.0 only supports .NET 4.5 on Windows.
Fixes:
- Implements the Unified API for Xamarin.iOS.
- Xamarin component now uses Nuget for managing dependencies.
- Disables TLS fallback to SSL3 (POODLE)
- Fixed BulkDownloader deadlock in a windows systems without Xamarin.
- Unknown unhandled exception thrown during Update call to storage engine.
- Fixed NRE in bulk downloader.
- Slower than expected performance on Windows
- Manager static ctor crashes on Azure
- Update document without re-sending attachments
- Fixes list item entry problem in Android sample on Nexus 5/Lollipop.
1.0.0
Our GA release.
Fixes:
- _bulk_get returns NotFound error when replication URL ends with a forward slash
- Uppercase Revision Ids are incompatible with CouchD
- Replicator.Authenticator should be public
- AccessViolationException on Windows
- Sqlite error on "database disk image is malformed" after replacing database file
- TraceEventCache undefined in Couchbase.Lite.0.9.5-pre5 for Android
- _bulk_get fails in release builds
- SingleThreadTaskScheduler sometimes throws an NRE
- [Android] Sometimes crashes with "EntryPointNotFoundException: getifaddrs"
- Client stops pulling changes
- Localization quirk makes NUnit fail to run tests
- Calling
Properties
on an unsaved document throws NRE
1.0.0 Beta-4
Release Notes
Highlights:
- Full Replication API support and cross-platform parity
- Change Tracker has been fixed
- Fixes to HTTPS support, bulk download, and network reachability support
Known issues:
- Only targets Xamarin.iOS and Xamarin.Android.
1.0.0 Beta-3
Release Notes
Highlights:
- Continuing to add more feature parity, particularly around Replication. Addressed issues around authentication and Cloudant support.
- Fixed: Out-of-memory error.
- Fixed: Issue #249Could not load SqlitePCL.raw
Known issues:
- Only targets Xamarin.iOS and Xamarin.Android.
1.0.0 Beta-2
Release Notes
Highlights:
- Attachments now work.
- Fixed: Crashes with "non-page-aligned, non-allocated pointer being freed" error.
- Lays the groundwork for supporting additional .NET platforms.
- Passes lots of additional tests.
- General stability improvements.
Known issues:
- Authentication is not supported yet.
- Only targets Xamarin.iOS and Xamarin.Android.