chiffondb 0.3.0 copy "chiffondb: ^0.3.0" to clipboard
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 fixes flutter build macos failing with Failed 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. _findLocalLib now verifies each local dylib with lipo -info and 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 .chiffon files 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, and addEdgeLabelDynamic, plus the DynamicInsertResult { rid, assignmentsJson } type. Unknown label names are minted a type id on the fly (no applySchema needed); each call reports whether a name was newly created via the returned JSON {id, created} mapping. Added test/dynamic_labels_test.dart. (The bindings are generated with rust-input crate::api,chiffondb-core::api — both the FFI crate and the re-exported core module must be scanned, or the generator silently drops the Connection methods.)
  • Verified the JSON-search traversal features added in ChiffonDB (feature/json-search-and-labels): any_key_contains now recurses into Json-typed properties, and filter.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. Added test/traversal_search_test.dart exercising them end-to-end.
  • Fix native library loading in Flutter apps. flutter run / flutter build macos bundle the dylib as chiffondb_ffi.framework/chiffondb_ffi (named after the CodeAsset, no arch suffix), but ChiffonDb.init() only looked for the arch-suffixed chiffondb_ffi-<arch>-apple-darwin.framework name and threw "Failed to load the chiffondb_ffi native library". Added the non-suffixed framework path to the macOS/iOS candidate list.
  • Widen the archive dependency constraint to >=3.6.0 <5.0.0 so the package is compatible with toolchains that pull in archive 4.x (e.g. recent flutter_gen). The hook's ZipDecoder.decodeBytes / findFile / ArchiveFile.content usage is API-compatible across 3.x and 4.x.

0.1.0 #

Initial release.

0
likes
140
points
138
downloads

Documentation

API reference

Publisher

verified publisherszktty.jp

Weekly Downloads

Dart FFI bindings for ChiffonDB — a lightweight embedded property graph database. Provides a Connection API and @NodeType/@EdgeType code generation via flutter_rust_bridge.

Topics

#graph #database #embedded #ffi #flutter-rust-bridge

License

Apache-2.0 (license)

Dependencies

archive, code_assets, ffi, flutter_rust_bridge, hooks, http, path

More

Packages that depend on chiffondb