From 90f9b0c081ebb56fae3a053eafd5ef638021ffe9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=A6=E9=A3=9E=E7=BF=94?= <1149761294@qq.com> Date: Sat, 20 Sep 2025 17:11:33 +0800 Subject: [PATCH 1/2] update docs --- site/using/rust.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/site/using/rust.md b/site/using/rust.md index 2752c9fd..ca7ddad3 100644 --- a/site/using/rust.md +++ b/site/using/rust.md @@ -29,9 +29,9 @@ Then, you can verify your installation was successful by embedding your first ve ```rs use sqlite_vec::sqlite3_vec_init; use rusqlite::{ffi::sqlite3_auto_extension, Result}; -use zerocopy::AsBytes; +use zerocopy::IntoBytes; -fn main()-> Result<()> { +fn main() -> Result<()> { unsafe { sqlite3_auto_extension(Some(std::mem::transmute(sqlite3_vec_init as *const ()))); } @@ -40,7 +40,7 @@ fn main()-> Result<()> { let v: Vec = vec![0.1, 0.2, 0.3]; let (vec_version, embedding): (String, String) = db.query_row( - "select vec_version(), vec_to_json(?)", + "SELECT vec_version(), vec_to_json(?)", &[v.as_bytes()], |x| Ok((x.get(0)?, x.get(1)?)), )?; @@ -56,10 +56,11 @@ for a more complete Rust demo. ## Working with vectors in Rust -If your vectors are provided as a `Vec` type, the [`zerocopy` crate](https://crates.io/crates/zerocopy) is recommended, specifically `zerocopy::AsBytes`. This will allow you to pass in vectors into `sqlite-vec` without any copying. +If your vectors are provided as a `Vec` type, the [`zerocopy` crate](https://crates.io/crates/zerocopy) is recommended, specifically `zerocopy::IntoBytes::as_bytes()`. This will allow you to pass in vectors into `sqlite-vec` without any copying. ```rs let query: Vec = vec![0.1, 0.2, 0.3, 0.4]; let mut stmt = db.prepare("SELECT vec_length(?)")?; -stmt.execute(&[item.1.as_bytes()])?; +let len: usize = stmt.query_one(&[query.as_bytes()], |row| row.get(0))?; +println!("length={}", len); ``` From 94fcd770ffa4cba0c60ed1bacaa3cca3a7518619 Mon Sep 17 00:00:00 2001 From: flaribbit <1149761294@qq.com> Date: Sat, 20 Sep 2025 17:14:45 +0800 Subject: [PATCH 2/2] update demo --- examples/simple-rust/Cargo.toml | 10 +++++----- examples/simple-rust/demo.rs | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/simple-rust/Cargo.toml b/examples/simple-rust/Cargo.toml index b4306d18..1a696d22 100644 --- a/examples/simple-rust/Cargo.toml +++ b/examples/simple-rust/Cargo.toml @@ -3,10 +3,10 @@ name = "sqlite-vec-demo" edition = "2021" [dependencies] -sqlite-vec={version="0.0.1-alpha.7"} -rusqlite = {version="0.31.0", features=["bundled"]} -zerocopy = "0.7.33" +sqlite-vec = "0.1.6" +rusqlite = { version = "0.37.0", features = ["bundled"] } +zerocopy = "0.8.27" [[bin]] -name="demo" -path="demo.rs" +name = "demo" +path = "demo.rs" diff --git a/examples/simple-rust/demo.rs b/examples/simple-rust/demo.rs index 2a4c8a6c..f61b7487 100644 --- a/examples/simple-rust/demo.rs +++ b/examples/simple-rust/demo.rs @@ -1,6 +1,6 @@ use rusqlite::{ffi::sqlite3_auto_extension, Connection, Result}; use sqlite_vec::sqlite3_vec_init; -use zerocopy::AsBytes; +use zerocopy::IntoBytes; fn main() -> Result<()> { unsafe {