PackageTrack
Sign in Get early access

isar

Extremely fast, easy to use, and fully async NoSQL database for Flutter.

3.1.0 4.1K downloads/mo #4138 most downloaded on pub.dev isar/isar

What this package is like to depend on

Last release 3 years ago

no release in 18 months

Release timing varies

gaps range from 8 days to 5 months

Nearly every release is documented

notes for 21 of 23 stable releases

8 versions withdrawn

withdrawn after publishing

6 years old

59 releases · first in 2020

0 releases in the last 12 months

see the full history below

Release timeline

59 releases · Jun 2020 to Aug 2023
2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 59
  1. 4.0.0-dev.14 21 Aug 2023 pre-release
    Release notes

    Fix dynamic, List<dynamic> and Map<String, dynamic>

    Open source →
    Release notes

    ⚠️ ISAR V4 IS NOT READY FOR PRODUCTION USE ⚠️

    This version does not support database migration yet and cannot open Isar v3 databases. The stable version will be released in a few weeks and will support migration from v3.

    Breaking

    Changed transactions API:

    old new
    writeTxn() writeAsync()
    writeTxnSync() write()
    txn() readAsync()
    txnSync() read()
    • All operations are now synchronous by default and there are Async methods for asynchronous operations.
    • Ids now need to be called id or annotated with @id
    • Ids can no longer be nullable. There is a new collection.autoIncrement() function to automatically generate ids.
    • Enums no longer need to be annotated with @enumerated instead there is a new @enumValue annotation to specify the value property of an enum
    • Where clauses have been removed in favor of automatic index handling
    • Isar links have been removed in favor of embedded objects
    • Indexes have been simplified
    • The Android minimum SDK version is now 23

    Enhancements

    • Web support is back!!! In-memory only for now (persistence will come soon)
    • Encrypted databases
    • String ids
    • Fetching multiple properties simultaneously
    • Partial and Bulk updates using collection.update() and query.updateAll()
    • SQLite storage engine support
    • Support for dynamic, List<dynamic> and Map<String, dynamic> properties
    • Required parameters for embedded objects
    • Case insensitive sorting
    • Much faster database initialization
    • Improved performance for all operations
    • Decoding objects no longer blocks the UI isolate
    • New @utc annotation to receive DateTime objects in UTC
    • Support for freezed and other code generators
    Open source →
  2. 4.0.0-dev.13 20 Aug 2023 pre-release

    Nothing published for this version

  3. 4.0.0-dev.11 20 Aug 2023 pre-release
    Release notes
    • Enabled encryption for Linux and Windows
    • Fixed rare crash when deleting objects using a query
    Open source →
  4. 4.0.0-dev.10 17 Aug 2023 pre-release
    Release notes
    • the Inspector is back 🎉
    • number of isolates using Isar in parallel are unlimited now
    • the schema is exposed again
    • async operations are more performant
    Open source →
  5. 4.0.0-dev.9 06 Aug 2023 pre-release
    Release notes

    Significantly improved get() and getAll() performance

    Open source →
  6. 4.0.0-dev.7 04 Aug 2023 pre-release
    Release notes

    Various fixes with Isar.openAsync()

    Open source →
  7. 4.0.0-dev.6 02 Aug 2023 pre-release
    Release notes
    • more tests
    • consistent offset and limit parameters for query methods
    • small fixes
    Open source →
  8. 4.0.0-dev.5 01 Aug 2023 pre-release

    Nothing published for this version

  9. 4.0.0-dev.4 31 Jul 2023 pre-release

    Nothing published for this version

  10. 4.0.0-dev.3 27 Jul 2023 pre-release

    Nothing published for this version

  11. 4.0.0-dev.2 26 Jul 2023 pre-release

    Nothing published for this version

  12. 4.0.0-dev.1 24 Jul 2023 pre-release

    Nothing published for this version

  13. 4.0.0-dev.0 23 Jul 2023 pre-release

    Nothing published for this version

  14. 3.1.0 16 Apr 2023
    Release notes

    Breaking

    Sorry for this breaking change. Unfortunately, it was necessary to fix stability issues on Android.

    • directory is now required for Isar.open() and Isar.openSync()

    Fixes

    • Fixed a crash that occasionally occurred when opening Isar
    • Fixed a schema migration issue
    • Fixed an issue where embedded class renaming didn't work correctly

    Enhancements

    • Many internal improvements
    • Performance improvements
    Open source →
  15. 3.1.0+1 25 Apr 2023
    Release notes

    Fixes

    • Fixed error building MacOS library
    Open source →
  16. 3.0.6-dev.0 23 Nov 2022 pre-release

    Nothing published for this version

  17. 3.0.5 17 Nov 2022
    Release notes

    Enhancements

    • Improved performance for all operations
    • Added maxSizeMiB option to Isar.open() to specify the maximum size of the database file
    • Significantly reduced native library size
    • With the help of the community, the docs have been translated into a range of languages
    • Improved API docs
    • Added integration tests for more platforms to ensure high-quality releases
    • Support for unicode paths on Windows

    Fixes

    • Fixed crash while opening Isar
    • Fixed crash on older Android devices
    • Fixed a native port that was not closed correctly in some cases
    • Added swift version to podspec
    • Fixed crash on Windows
    • Fixed "IndexNotFound" error
    Open source →
  18. 3.0.4 14 Nov 2022 withdrawn
    Release notes

    REDACTED.

    Open source →
  19. 3.0.3 13 Nov 2022 withdrawn
    Release notes

    REDACTED.

    Open source →
  20. 3.0.2 03 Oct 2022
    Release notes

    Enhancements

    • The Inspector now supports creating objects and importing JSON
    • Added Inspector check to make sure Chrome is used

    Fixes

    • Added support for the latest analyzer
    • Fixed native ports that were not closed correctly in some cases
    • Added support for Ubuntu 18.04 and older
    • Fixed issue with aborting transactions
    • Fixed crash when invalid JSON was provided to importJsonRaw()
    • Added missing exportJsonSync() and exportJsonRawSync()
    • Fixed issue where secondary instance could not be selected in the Inspector
    Open source →
  21. 3.0.1 23 Sep 2022
    Release notes

    Enhancements

    • Support for arm64 iOS Simulators

    Fixes

    • Fixed issue where .anyOf(), .allOf(), and .oneOf() could not be negated
    • Fixed too low min-iOS version. The minimum supported is 11.0
    • Fixed error during macOS App Store build
    Open source →
  22. 3.0.0 18 Sep 2022
    Release notes

    This release has been a lot of work! Thanks to everyone who contributed and joined the countless discussions. You are really awesome!

    Special thanks to @Jtplouffe and @Peyman for their incredible work.

    Web support

    This version does not support the web target yet. It will be back in the next version. Please continue using 2.5.0 if you need web support.

    Enhancements

    • Completely new Isar inspector that does not need to be installed anymore
    • Extreme performance improvements for almost all operations (up to 50%)
    • Support for embedded objects using @embedded
    • Support for enums using @enumerated
    • Vastly improved Isar binary format space efficiency resulting in about 20% smaller databases
    • Added id, byte, short and float typedefs
    • IsarLinks now support all Set methods based on the Isar Id of objects
    • Added download option to Isar.initializeIsarCore() to download binaries automatically
    • Added replace option for indexes
    • Added verification for correct Isar binary version
    • Added collection.getSize() and collection.getSizeSync()
    • Added query.anyOf() and query.allOf() query modifiers
    • Support for much more complex composite index queries
    • Support for logical XOR and the .oneOf() query modifier
    • Made providing a path optional
    • The default Isar name is now default and stored in dir/name.isar and dir/name.isar.lock
    • On non-web platforms, IsarLink and IsarLinks will load automatically
    • .putSync(), .putAllSync() etc. will now save links recursively by default
    • Added isar.getSize() and isar.getSizeSync()
    • Added linksLengthEqualTo(), linksIsEmpty(), linksIsNotEmpty(), linksLengthGreaterThan(), linksLengthLessThan(), linksLengthBetween() and linkIsNull() filters
    • Added listLengthEqualTo(), listIsEmpty(), listIsNotEmpty(), listLengthGreaterThan(), listLengthLessThan(), listLengthBetween() filters
    • Added isNotNull() filters
    • Added compactOnLaunch conditions to Isar.open() for automatic database compaction
    • Added isar.copyToFile() which copies a compacted version of the database to a path
    • Added check to verify that linked collections schemas are provided for opening an instance
    • Apply default values from constructor during deserialization
    • Added isar.verify() and col.verify() methods for checking database integrity in unit tests
    • Added missing float and double queries and an epsilon parameter

    Breaking changes

    • Removed TypeConverter support in favor of @embedded and @enumerated
    • Removed @Id() and @Size32() annotations in favor of the Id and short types
    • Changed the schemas parameter from named to positional
    • The maximum size of objects is now 16MB
    • Removed replaceOnConflict and saveLinks parameter from collection.put() and collection.putAll()
    • Removed isar parameter from Isar.txn(), Isar.writeTxn(), Isar.txnSync() and Isar.writeTxnSync()
    • Removed query.repeat()
    • Removed query.sortById() and query.distinctById()
    • Fixed .or() instead of .and() being used implicitly when combining filters
    • Renamed multi-entry where clauses from .yourListAnyEqualTo() to .yourListElementEqualTo() to avoid confusion
    • Isar will no longer create the provided directory. Make sure it exists before opening an Isar Instance.
    • Changed the default index type for all Lists to IndexType.hash
    • Renamed isar.getCollection() to isar.collection()
    • It is no longer allowed to extend or implement another collection
    • Unsupported properties will no longer be ignored by default
    • Renamed the initialReturn parameter to fireImmediately
    • Renamed Isar.initializeLibraries() to Isar.initializeIsarCore()

    Fixes

    There are too many fixes to list them all.

    • A lot of link fixes and a slight behavior change to make them super reliable
    • Fixed missing symbols on older Android phones
    • Fixed composite queries
    • Fixed various generator issues
    • Fixed error retrieving the id property in a query
    • Fixed missing symbols on 32-bit Android 5 & 6 devices
    • Fixed inconsistent null handling in json export
    • Fixed default directory issue on Android
    • Fixed different where clauses returning duplicate results
    • Fixed hash index issue where multiple list values resulted in the same hash
    • Fixed edge case where creating a new index failed
    Open source →
  23. 3.0.0-dev.15 17 Sep 2022 pre-release

    Nothing published for this version

  24. 3.0.0-dev.14 07 Sep 2022 pre-release

    Nothing published for this version

  25. 3.0.0-dev.13 28 Aug 2022 pre-release

    Nothing published for this version

  26. 3.0.0-dev.12 24 Aug 2022 pre-release

    Nothing published for this version

  27. 3.0.0-dev.11 24 Aug 2022 pre-release withdrawn

    Nothing published for this version

  28. 3.0.0-dev.10 22 Aug 2022 pre-release

    Nothing published for this version

  29. 3.0.0-dev.9 22 Aug 2022 pre-release withdrawn

    Nothing published for this version

  30. 3.0.0-dev.8 16 Jul 2022 pre-release

    Nothing published for this version

  31. 3.0.0-dev.7 10 Jul 2022 pre-release

    Nothing published for this version

  32. 3.0.0-dev.6 10 Jul 2022 pre-release

    Nothing published for this version

  33. 3.0.0-dev.5 26 Jun 2022 pre-release

    Nothing published for this version

  34. 3.0.0-dev.4 25 Jun 2022 pre-release withdrawn

    Nothing published for this version

  35. 3.0.0-dev.3 25 Jun 2022 pre-release withdrawn

    Nothing published for this version

  36. 3.0.0-dev.2 24 Jun 2022 pre-release

    Nothing published for this version

  37. 3.0.0-dev.1 18 Jun 2022 pre-release

    Nothing published for this version

  38. 3.0.0-dev.0 15 May 2022 pre-release

    Nothing published for this version

  39. 2.5.0 02 May 2022
    Release notes

    Enhancements

    • Support for Android x86 (32 bit emulator) and macOS arm64 (Apple Silicon)
    • Greatly improved test coverage for sync methods
    • col.clear() now resets the auto increment counter to 0
    • Significantly reduced Isar Core binary size (about 1.4MB -> 800KB)

    Minor Breaking

    • Changed initializeLibraries(Map<String, String> libraries) to initializeLibraries(Map<IsarAbi, String> libraries)
    • Changed min Dart SDK to 2.16.0

    Fixes

    • Fixed issue with IsarLink.saveSync()
    • Fixed id queries
    • Fixed error thrown by BroadcastChannel in Firefox
    • Fixed Isar Inspector connection issue
    Open source →
  40. 2.4.0 24 Apr 2022
    Release notes

    Enhancements

    • Support for querying links
    • Support for filtering and sorting links
    • Added methods to update and count links without loading them
    • Added isLoaded property to links
    • Added methods to count the number of objects in a collection
    • Big internal improvements

    Minor Breaking

    • There are now different kinds of where clauses for dynamic queries
    • isar.getCollection() no longer requires the name of the collection
    • Isar.instanceNames now returns a Set instead of a List

    Fixes

    • Fixed iOS crash that frequently happened on older devices
    • Fixed 32bit issue on Android
    • Fixed link issues
    • Fixed missing BroadcastChannel API for older Safari versions
    Open source →
  41. 2.2.1 18 Feb 2022
    Release notes

    Enhancements

    • Reduced Isar web code size by 50%
    • Made directory parameter of Isar.open() optional for web
    • Made name parameter of Isar.getInstance() optional
    • Added Isar.defaultName constant
    • Enabled TypeConverters with supertypes
    • Added message if TypeConverter nullability doesn't match
    • Added more tests

    Fixes

    • Fixed issue with date queries
    • Fixed FilterGroup.not constructor (thanks for the PR @jtzell)
    Open source →
  42. 2.2.0 14 Feb 2022 withdrawn
    Release notes

    Isar now has full web support 🎉. No changes to your code required, just run it.

    Web passes all unit tests but is still considered beta for now.

    Minor Breaking

    • Added saveLinks parameter to .put() and .putAll() which defaults to false
    • Changed default overrideChanges parameter of links.load() to true to avoid unintended behavior

    Enhancements

    • Full web support!
    • Improved write performance
    • Added deleteFromDisk option to isar.close()
    • Added .reset() and .resetSync() methods to IsarLink and IsarLinks
    • Improved links.save() performance
    • Added many tests

    Fixed

    • Fixed value of null dates to be DateTime.fromMillisecondsSinceEpoch(0)
    • Fixed problem with migration
    • Fixed incorrect list values for new properties ([] instead of null)
    • Improved handling of link edge-cases
    Open source →
  43. 2.2.0+1 14 Feb 2022

    Nothing published for this version

  44. 2.1.4 01 Feb 2022
    Release notes
    • Removed path dependency
    • Fixed incorrect return value of deleteByIndex()
    • Fixed wrong auto increment ids in some cases (thanks @robban112)
    • Fixed an issue with Isar.close() (thanks @msxenon)
    • Fixed $ escaping in generated code (thanks @jtzell)
    • Fixed broken link in pub.dev example page
    Open source →
  45. 2.1.0 29 Jan 2022
    Release notes

    isar_connect is now integrated into isar

    Enhancements

    • Added check for outdated generated files
    • Added check for changed schema across isolates
    • Added Isar.openSync()
    • Added col.importJsonRawSync(), col.importJsonSync(), query.exportJsonRawSync(), query.exportJsonSync()
    • Improved performance for queries
    • Improved handling of ffi memory
    • More tests

    Fixed

    • Fixed issue where imported json required existing ids
    • Fixed issue with transaction handling (thanks @Peng-Qian for the awesome help)
    • Fixed issue with @Ignore annotation not always working
    • Fixed issue with getByIndex() not returning correct object id (thanks @jtzell)
    Open source →
  46. 2.0.0 21 Jan 2022
    Release notes

    Breaking

    • The id for non-final objects is now assigned automatically after .put() and .putSync()
    • double and List<double> indexes can no longer be at the beginning of a composite index
    • List<double> indexes can no longer be hashed
    • .greaterThan(), .lessThan() and .between() filters and are now excluding for double values (>= -> >)
    • Changed the default index type for lists to IndexType.value
    • IsarLink and IsarLinks will no longer be initialized by Isar and must not be nullable or late.
    • Dart 2.14 or higher is required

    Enhancements

    • Added API docs for all public methods
    • Added isar.clear(), isar.clearSync(), col.clear() and col.clearSync()
    • Added col.filter() as shortcut for col.where().filter()
    • Added include parameter to .greaterThan() and .lessThan() filters and where clauses
    • Added includeLower and includeUpper parameters to .between() filters and where clauses
    • Added Isar.autoIncrement to allow non-nullable auto-incrementing ids
    • Isar.close() now returns whether the last instance was closed
    • List values in composite indexes are now of type IndexType.hash automatically
    • Allowed multiple indexes on the same property
    • Removed exported packages from API docs
    • Improved generated code
    • Improved Isar Core error messages
    • Minor performance improvements
    • Automatic XCode configuration
    • Updated analyzer to 3.0.0
    • More tests

    Fixed

    • IsarLink and IsarLinks can now be final
    • Fixed multi-entry index queries returning items multiple times in some cases
    • Fixed .anyLessThan() and .anyGreaterThan() issues
    • Fixed issues with backlinks
    • Fixed issue where query only returned the first 99999 results
    • Fixed issue with id where clauses
    • Fixed default index type for lists and bytes
    • Fixed issue where renaming indexes was not possible
    • Fixed issue where wrong index name was used for .getByX() and .deleteByX()
    • Fixed issue where composite indexes did not allow non-hashed Strings as last value
    • Fixed issue where @Ignore() fields were not ignored
    Open source →
  47. 2.0.0-dev.1 14 Jan 2022 pre-release

    Nothing published for this version

  48. 2.0.0-dev.0 14 Jan 2022 pre-release

    Nothing published for this version

  49. 1.0.5 05 Jan 2022
    Release notes

    Enhancements

    • Updated dependencies

    Fixes:

    • Included desktop binaries
    • Fixed "Cannot allocate memory" error on older iOS devices
    • Fixed stripped binaries for iOS release builds
    • Fixed IsarInspector issues (thanks to RubenBez and rizzi37)
    Open source →
  50. 1.0.0 31 Dec 2021
    Release notes

    Switched from liblmdb to libmdbx for better performance, more stability and many internal improvements.

    Breaking

    The internal database format has been changed to improve performance. Old databases do not work anymore!

    Fixes

    • Fix issue with links being removed after object update
    • Fix String index problems

    Enhancements

    • Support greaterThan, lessThan and between queries for String values
    • Support for inheritance (enabled by default)
    • Support for final properties and getters
    • Support for freezed and other code generators
    • Support getting / deleting objects by a key col.deleteByName('Anne')
    • Support for list indexes (hash an element based)
    • Generator now creates individual files instead of one big file
    • Allow specifying the collection accessor name
    • Unsupported properties are now ignored automatically
    • Returns the assigned ids after .put() operations (objects are no longer mutated)
    • Introduces replaceOnConflict option for .put() (instead of specifying it for index)
    • many more...

    Internal

    • Improve generated code
    • Many new unit tests
    Open source →
  51. 1.0.0+1 01 Jan 2022
    Release notes

    Added missing binaries

    Open source →
  52. 0.4.0 11 Apr 2021
    Release notes

    Breaking

    • Remove .where...In() and ...In() extension methods
    • Split .watch(lazy: bool) into .watch() and .watchLazy()
    • Remove include option for filters

    Fixes

    • Generate id for JSON imports that don't have an id
    • Enable sortBy and thenBy generation

    Enhancements

    • Add .optional() and .repeat() query modifiers
    • Support property queries
    • Support query aggregation
    • Support dynamic queries (for custom query languages)
    • Support multi package configuration with @ExternalCollection()
    • Add caseSensitive option to .distinctBy()

    Internal

    • Change iOS linking
    • Improve generated code
    • Set up integration tests and improve unit tests
    • Use CORE/0.4.0
    Open source →
  53. 0.2.0 26 Mar 2021
    Release notes
    • Link support
    • Many improvements and fixes
    Open source →
  54. 0.1.0 12 Mar 2021
    Release notes
    • Support for links and backlinks
    Open source →
  55. 0.0.4 07 Feb 2021
    Release notes
    • Bugfixes and many improvements
    Open source →
  56. 0.0.2 10 Jan 2021
    Release notes

    Fix dependency issue

    Open source →
  57. 0.0.1 10 Jan 2021
    Release notes

    Initial release

    Open source →
  58. 0.0.0 05 Jun 2020

    Nothing published for this version

  59. 0.0.0-placeholder 31 Jul 2023 pre-release withdrawn

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive