chiffondb 0.3.0
chiffondb: ^0.3.0 copied to clipboard
Dart FFI bindings for ChiffonDB — a lightweight embedded property graph database. Provides a Connection API and @NodeType/@EdgeType code generation via flutter_rust_bridge.
Changelog #
0.3.0 #
- Breaking (platform support). Drop x86_64 support on macOS and iOS; these
platforms are now arm64-only. The build hook contributes no native asset
for x86_64 Apple targets, so a universal macOS build produces an arm64-only
chiffondb_ffi.framework. This fixesflutter build macosfailing withFailed to create universal binary: ... have the same architectures (arm64)when only a local (host-arm64) cargo build is available, and also silences the accompanying "different framework names for different architectures" warning._findLocalLibnow verifies each local dylib withlipo -infoand skips any that does not contain the target architecture. Linux and Windows keep x86_64 support. No FFI/binding change; still tracks ChiffonDB core v0.2.0 (the native library is downloaded from the core's v0.2.0 GitHub Release).
0.2.0 #
- Track ChiffonDB core v0.2.0. Storage-internal improvements only (insertion
O(1) via free-slot hints, property-store space reclaim) — no FFI signature
changes beyond the dynamic-label API already listed below. Breaking:
on-disk format VERSION bumped 8 → 10; existing
.chiffonfiles created with 0.1.0 cannot be opened by 0.2.0. - FFI/binding change. Expose ChiffonDB's dynamic-label API: regenerated the
flutter_rust_bridge bindings to add
Connection.insertNodeWithDynamicLabels,addNodeLabelDynamic, andaddEdgeLabelDynamic, plus theDynamicInsertResult { rid, assignmentsJson }type. Unknown label names are minted a type id on the fly (noapplySchemaneeded); each call reports whether a name was newly created via the returned JSON{id, created}mapping. Addedtest/dynamic_labels_test.dart. (The bindings are generated with rust-inputcrate::api,chiffondb-core::api— both the FFI crate and the re-exported core module must be scanned, or the generator silently drops theConnectionmethods.) - Verified the JSON-search traversal features added in ChiffonDB
(
feature/json-search-and-labels):any_key_containsnow recurses intoJson-typed properties, andfilter.property/OrderBy.key/ property-reference keys accept nested{ "path": [...] }paths in addition to flat top-level keys. These are command-JSON semantics only — no FFI change. Addedtest/traversal_search_test.dartexercising them end-to-end. - Fix native library loading in Flutter apps.
flutter run/flutter build macosbundle the dylib aschiffondb_ffi.framework/chiffondb_ffi(named after the CodeAsset, no arch suffix), butChiffonDb.init()only looked for the arch-suffixedchiffondb_ffi-<arch>-apple-darwin.frameworkname and threw "Failed to load the chiffondb_ffi native library". Added the non-suffixed framework path to the macOS/iOS candidate list. - Widen the
archivedependency constraint to>=3.6.0 <5.0.0so the package is compatible with toolchains that pull inarchive4.x (e.g. recentflutter_gen). The hook'sZipDecoder.decodeBytes/findFile/ArchiveFile.contentusage is API-compatible across 3.x and 4.x.
0.1.0 #
Initial release.