Feat/pure rust default and msrv #3
@@ -11,6 +11,8 @@
|
||||
overrides zlib-rs wherever it is on.
|
||||
- **A truncated deflate chunk is now an error.** It used to read back short,
|
||||
with no error.
|
||||
- **Minimum supported Rust is 1.92**, now declared in every crate's
|
||||
`rust-version` and checked in CI.
|
||||
- **New stores use the int8 vector index by default.**
|
||||
`MemoryConfig::quantized_index` now defaults to `true`: a quarter of the
|
||||
index memory, builds 1.8x (x86-64) and 2.3x (Raspberry Pi 5) faster, and
|
||||
@@ -32,6 +34,8 @@
|
||||
no `std`, cannot detect SIMD at runtime, and inflates 3.5x slower; the
|
||||
workspace builds flate2 with `default-features = false`, which had been
|
||||
switching it off.
|
||||
- `rust-version = "1.92"` for the whole workspace (the floor: `wgpu` requires
|
||||
it), and CI checks the workspace on exactly that toolchain.
|
||||
- CI keeps zlib-ng building and tested; the arm64 job no longer needs cmake.
|
||||
|
||||
### Correctness
|
||||
|
||||
@@ -31,7 +31,8 @@ Cargo workspace with 16 crates under `crates/` (plus `libaec-sys`, an internal F
|
||||
pure-Rust zlib-rs (`fast-deflate` opts into zlib-ng, which needs cmake).
|
||||
`ci-test.sh` fails if a C-building crate enters the core crates' default
|
||||
tree. flate2 must keep `runtime_detection` with zlib-rs — without it zlib-rs
|
||||
loses SIMD and inflates 3.5x slower.
|
||||
loses SIMD and inflates 3.5x slower. MSRV is 1.92 (`rust-version`, checked
|
||||
in CI).
|
||||
- HNSW vector index for semantic similarity search over agent memories — the
|
||||
`clawhdf5-agent` `hnsw` feature is **on by default**, so `hybrid_search` uses
|
||||
the approximate `clawhdf5-ann` index for the vector stage (the index mirrors
|
||||
|
||||
@@ -23,6 +23,9 @@ resolver = "2"
|
||||
[workspace.package]
|
||||
version = "2.7.0"
|
||||
edition = "2024"
|
||||
# Oldest toolchain that builds the whole workspace; CI checks it. wgpu (in
|
||||
# clawhdf5-gpu) requires 1.92.
|
||||
rust-version = "1.92"
|
||||
license = "MIT"
|
||||
repository = "https://git.redclaw.dev/quantumclaw/clawhdf5"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
**The memory layer AI agents deserve. One file. Pure Rust. Zero C dependencies.**
|
||||
|
||||
[](LICENSE)
|
||||
[](https://www.rust-lang.org)
|
||||
[](https://www.rust-lang.org)
|
||||
[](#building)
|
||||
[](BENCHMARKS.md#longmemeval-results)
|
||||
[](BENCHMARKS.md#memory-footprint-1)
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "clawhdf5-accel"
|
||||
version = "2.7.0"
|
||||
edition = "2024"
|
||||
rust-version.workspace = true
|
||||
description = "SIMD-accelerated operations for rustyhdf5"
|
||||
license = "MIT"
|
||||
repository = "https://git.redclaw.dev/quantumclaw/clawhdf5"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "clawhdf5-agent"
|
||||
version = "2.7.0"
|
||||
edition = "2024"
|
||||
rust-version.workspace = true
|
||||
description = "HDF5-backed persistent memory store for on-device AI agents"
|
||||
license = "MIT"
|
||||
repository = "https://git.redclaw.dev/quantumclaw/clawhdf5"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "clawhdf5-android"
|
||||
version = "2.7.0"
|
||||
edition = "2024"
|
||||
rust-version.workspace = true
|
||||
description = "Android JNI bridge for edgehdf5-memory HDF5 backend"
|
||||
license = "MIT"
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "clawhdf5-ann"
|
||||
version = "2.7.0"
|
||||
edition = "2024"
|
||||
rust-version.workspace = true
|
||||
description = "HNSW approximate nearest neighbor index stored as HDF5"
|
||||
license = "MIT"
|
||||
repository = "https://git.redclaw.dev/quantumclaw/clawhdf5"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "clawhdf5-bench"
|
||||
version = "2.7.0"
|
||||
edition = "2024"
|
||||
rust-version.workspace = true
|
||||
description = "Benchmark harnesses for clawhdf5-agent (Track 8)"
|
||||
license = "MIT"
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "clawhdf5-cli"
|
||||
version = "2.7.0"
|
||||
edition = "2024"
|
||||
rust-version.workspace = true
|
||||
license = "MIT"
|
||||
description = "CLI for clawhdf5 agent memory — create, save, search, recall, stats"
|
||||
repository = "https://git.redclaw.dev/quantumclaw/clawhdf5"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "clawhdf5-derive"
|
||||
version = "2.7.0"
|
||||
edition = "2024"
|
||||
rust-version.workspace = true
|
||||
description = "Derive macros for rustyhdf5 HDF5 traits"
|
||||
license = "MIT"
|
||||
repository = "https://git.redclaw.dev/quantumclaw/clawhdf5"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "clawhdf5-filters"
|
||||
version = "2.7.0"
|
||||
edition = "2024"
|
||||
rust-version.workspace = true
|
||||
description = "Filter and compression pipeline for clawhdf5"
|
||||
license = "MIT"
|
||||
repository = "https://git.redclaw.dev/quantumclaw/clawhdf5"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "clawhdf5-format"
|
||||
version = "2.7.0"
|
||||
edition = "2024"
|
||||
rust-version.workspace = true
|
||||
description = "Pure-Rust HDF5 binary format parsing and writing — no C dependencies"
|
||||
license = "MIT"
|
||||
repository = "https://git.redclaw.dev/quantumclaw/clawhdf5"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "clawhdf5-gpu"
|
||||
version = "2.7.0"
|
||||
edition = "2024"
|
||||
rust-version.workspace = true
|
||||
description = "GPU-accelerated vector operations for rustyhdf5 using wgpu compute shaders"
|
||||
license = "MIT"
|
||||
repository = "https://git.redclaw.dev/quantumclaw/clawhdf5"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "clawhdf5-io"
|
||||
version = "2.7.0"
|
||||
edition = "2024"
|
||||
rust-version.workspace = true
|
||||
description = "I/O abstraction layer for rustyhdf5"
|
||||
license = "MIT"
|
||||
repository = "https://git.redclaw.dev/quantumclaw/clawhdf5"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "clawhdf5-migrate"
|
||||
version = "2.7.0"
|
||||
edition = "2024"
|
||||
rust-version.workspace = true
|
||||
description = "CLI to migrate SQLite agent memory databases to HDF5 format"
|
||||
license = "MIT"
|
||||
repository = "https://git.redclaw.dev/quantumclaw/clawhdf5"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "clawhdf5-napi"
|
||||
version = "2.7.0"
|
||||
edition = "2024"
|
||||
rust-version.workspace = true
|
||||
description = "Node.js native addon (napi-rs) exposing clawhdf5-agent to TypeScript/JavaScript"
|
||||
license = "MIT"
|
||||
repository = "https://git.redclaw.dev/quantumclaw/clawhdf5"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "clawhdf5-netcdf4"
|
||||
version = "2.7.0"
|
||||
edition = "2024"
|
||||
rust-version.workspace = true
|
||||
description = "NetCDF-4 read support built on rustyhdf5 — pure Rust, no C dependencies"
|
||||
license = "MIT"
|
||||
repository = "https://git.redclaw.dev/quantumclaw/clawhdf5"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "clawhdf5-py"
|
||||
version = "2.7.0"
|
||||
edition = "2024"
|
||||
rust-version.workspace = true
|
||||
description = "Python bindings for rustyhdf5 — a pure-Rust HDF5 library"
|
||||
license = "MIT"
|
||||
repository = "https://git.redclaw.dev/quantumclaw/clawhdf5"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "clawhdf5"
|
||||
version = "2.7.0"
|
||||
edition = "2024"
|
||||
rust-version.workspace = true
|
||||
description = "Pure-Rust HDF5 reader/writer — no C dependencies"
|
||||
license = "MIT"
|
||||
repository = "https://git.redclaw.dev/quantumclaw/clawhdf5"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "libaec-sys"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
rust-version.workspace = true
|
||||
links = "aec"
|
||||
|
||||
[build-dependencies]
|
||||
|
||||
@@ -106,6 +106,21 @@ no_c_in_default_build() {
|
||||
}
|
||||
run_step "no C in the default build (core crates)" no_c_in_default_build
|
||||
|
||||
# The workspace declares a minimum Rust version (rust-version in Cargo.toml);
|
||||
# check that it really builds there, so the README badge and the manifests
|
||||
# cannot drift from the truth. Separate target dir: a different toolchain
|
||||
# would otherwise invalidate the main build.
|
||||
msrv_check() {
|
||||
local msrv
|
||||
msrv=$(sed -n 's/^rust-version = "\(.*\)"/\1/p' "$SCRIPT_DIR/../Cargo.toml")
|
||||
[ -n "$msrv" ] || { echo "no rust-version in Cargo.toml"; return 1; }
|
||||
rustup toolchain install "$msrv" --profile minimal >/dev/null || return 1
|
||||
echo "checking with Rust $msrv"
|
||||
CARGO_TARGET_DIR="$SCRIPT_DIR/../target/msrv" cargo "+$msrv" check \
|
||||
--workspace --exclude clawhdf5-py --all-targets
|
||||
}
|
||||
run_step "MSRV check" msrv_check
|
||||
|
||||
# 4. Tests (exclude clawhdf5-py)
|
||||
run_step "cargo test" cargo test \
|
||||
--workspace \
|
||||
|
||||
Reference in New Issue
Block a user