This repository now contains two Rust crates:
zvec: the raw bindgen-based FFI crate at the repository rootzvec-rs: the safe wrapper crate inzvec-rs/
The wrapper is the internal Zephyr API that powered production usage. It was imported into this repo so Alibaba can continue from working Rust bindings instead of starting from the C API alone.
- The existing GitHub release workflow is still anchored on the root
zveccrate. - Release artifacts are built from
alibaba/zvecand published as prebuiltzvec_c_apiarchives. - The workflow now explicitly reads the version from the root
zvecpackage so adding workspace members does not affect release automation.
The wrapper intentionally exposes the API surface already used internally:
CollectionSearchResultWriteResultCollectionStatsbuilderhelpers
It depends on the in-repo raw crate through a path dependency, so both crates stay aligned to the same generated bindings and prebuilt binary artifacts.
- Removed the internal Tauri-specific
build.rsfrom the safe wrapper - Kept the raw root crate behavior intact for existing users
- Added repository-level documentation so external maintainers can understand the two-layer layout quickly
- Decide whether
zvec-rsshould eventually publish independently to crates.io or remain Git-only. - Add more end-to-end examples once the Alibaba team confirms the intended public API shape.
- If the raw header evolves materially, re-run wrapper validation before cutting the next release PR.