hivez 1.1.0
hivez: ^1.1.0 copied to clipboard
The cleanest dart database. Blazingly fast queries, easy, type-safe, boilerplate-free. Heavily tested, production-ready. (Wrapping hive_ce with x1000 faster queries)
1.1.0 #
New Indexed Box - Ultra-fast full-text search for Hive #
A special box that maintains a lightweight full‑text token index for extremely fast searches over your values. It wraps a regular box and keeps an auxiliary index box plus a small journal/meta box for crash‑safe updates.
-
Performance: compared to a regular, non‑indexed box, searches are dramatically faster (
100xto3000xin real-world benchmarks). You can tune behavior via the analyzer (basic,prefix,ngram),matchAllTokens, a customkeyComparator, and the token cache capacity. -
Create an indexed box and tell it how to extract searchable text
final box = IndexedBox<int, Article>( 'articles', searchableText: (a) => "${a.title} ${a.body}", // or just a.title, it's up to you ); final articles = await box.search('flutter dart'); // Blazing fast search
📘 Now with complete documentation
This release includes full, production-grade docs featuring detailed explanations, real-world examples, and step-by-step guides for every feature — from basic box usage to advanced search analyzers, configuration, and clean architecture patterns.
Click here to view the complete documentation.
New Box API - Universal classes with improved functionality #
-
A universal class that can be used to create all box types.
final box = Box<int, User>('users');final box = Box<int, User>('users', type: BoxType.lazy); // easy to switch between box types final box = Box<int, User>('users', type: BoxType.isolated); // all types of boxes supported final box = Box<int, User>.lazy('users'); // many syntax variations -
Comes with
BoxConfig,BoxType, andBoxCreator, for easier box configuration and creation:final box = BoxConfig.lazy('users').createBox<int, User>(); // example final box = BoxType.lazy.createBox<int, User>('users'); // example
New methods for all box types #
getKeysWhere()— returns keys matching a condition.firstKeyWhere()— returns the first key matching a condition.searchKeyOf()— returns the key for a given value.estimateSizeBytes()— estimates the approximate in-memory size of box contents (bytes).toMap()— now supports lazy boxes.
1.0.2 #
1.0.1 #
- Added example file for pub.dev
- Updated README.md with more detailed examples and sections
1.0.0 #
- Added proper API comments and documentation
- Removed unnecessary
hive_ceexport inside thehivezpackage - Added exports from
hive_ceto thehivez_flutterpackage - Completed all essential documentation
0.0.11 #
- Created
hivez_flutterpackage for Flutter usage to easily import all additionalhive_cedependencies. Now all you need is to importhivez_flutterinstead ofhivezandhive_ce_flutterandhive_cein your Flutter projects (If you don't need to use them directly).
0.0.10 #
- Added
moveKeymethod to reassign a value from one key to another (renames the key while preserving the value). - Added
foreachKeyandforeachValuemethods to iterate over all keys and values in the box - Made the base
BoxInterfaceclass simpler for better abstraction and flexibility - Added exports from
hive_ceto the package for ease of use - Updated the README with more detailed examples and better structure with sections Features, Hive vs
HivezComparison, How to UseHivez, Examples, Setup Guide forhive_ce
0.0.9 #
- Improved API structure, type safety and made unnecessary public members private
- Improved logging performance by using a function builder instead of a string literal
- Added basic logs to
initialize,flush,compact,deleteFromDisk, andcloseBoxoperations - Added extensive tests for backup extension methods for all box types testing both JSON and compressed backups and many more tests for all box types
- Fixed missing exports for extension methods
- To improve the auto-completion and code readability, renamed boxes from
HivezBoxHivezLazyBoxHivezIsolatedBoxHivezIsolatedLazyBox
- to
HivezBox,HivezBoxLazy,HivezBoxIsolated,HivezBoxIsolatedLazy
0.0.8 #
- Improved performance by removing unnecessary checks and validation while making the package even more type safe and flexible
- Added search extension methods for all box types, and added extensive tests with all box types
searchfor searching the box for values that match the search query. It supports pagination, sorting and improved search with multiple search terms.
- Fixed casting issues with isolated boxes
0.0.7 #
- Implemented extensive testing for all box types and functions
- Tests for
put,get,putAll,containsKey,keys,length,isEmpty,isNotEmpty,delete,deleteAt,deleteAll,clear,generateBackupJson,restoreBackupJson,generateBackupCompressed,restoreBackupCompressed - Box types tested:
HivezBox,HivezLazyBox,HivezIsolatedBox,HivezIsolatedLazyBox
0.0.6 #
- Created backup extension methods for all box types, it uses the existing json backup extension methods and compresses the json string using the
shrinkpackage with compression ratios of 5x-40xgenerateBackupCompressedfor generating compressed backupsrestoreBackupCompressedfor restoring compressed backups
- Started setting up testing for the package
- Implemented test setup utilities using the
hive_ce_flutterpackage - Added testing dev dependencies
0.0.5 #
- Created backup extension methods for all box types, it saves all data existing in the box to a json string and allows to restore the data from the json string back to the box
generateBackupJsonfor generating json backupsrestoreBackupJsonfor restoring json backups
0.0.4 #
- Added all box types, all ready to use out of the box
HivezBoxfor regular boxesHivezLazyBoxfor lazy boxesHivezIsolatedBoxfor regular isolated boxesHivezIsolatedLazyBoxfor lazy isolated boxes
0.0.3 #
- Added abstract boxes
AbstractHivezBoxfor lazy and regular boxesAbstractHivezIsolatedBoxfor lazy and regular isolated boxes
- Implemented shared functionality for all boxes
0.0.2 #
- Changed
BaseHiveServicetoBaseHivezBoxfor better abstraction and flexibility - Created core functionality, exceptions and base interfaces for Hivez boxes
- Added future support for all operations including isolated boxes
- Updated dart sdk dependency to support up to 4.0.0
- Updated README.md links
0.0.1 #
Initial release of hivez package.
- Introduced
BaseHiveService<K, T>for managing Hive boxes:- Lazy initialization via
ensureInitialized()with overridableonInit()hook - Concurrency-safe operations using
synchronizedWriteandsynchronizedRead - Guarded
boxgetter; throwsHiveServiceInitExceptionif uninitialized - Utilities:
closeBox(),deleteFromDisk(), optional logging viaLogHandleranddebugLog()
- Lazy initialization via
- Added
HiveServiceInitExceptionfor uninitialized service access