sqlcipher-src 419.0.5+sqlcipher-4.19.0-sqlite-3.53.4-libtomcrypt-1.18.2

The SQLCipher amalgamation for native and wasm32 builds, with a libtomcrypt provider for targets without a system crypto library
Documentation

sqlcipher-src

CI CodeQL codecov Quality gate SQLCipher release crates.io docs.rs license

The SQLCipher amalgamation and the libtomcrypt crypto provider as C source for -sys crates.

Native builds compile SOURCE_FILE with their own crypto provider and flags:

let dir = sqlcipher_src::source_dir();
assert!(dir.join(sqlcipher_src::SOURCE_FILE).is_file());
assert!(dir.join(sqlcipher_src::HEADER_FILE).is_file());

The sqlcipher feature of sqlite-wasm-rs builds from this crate for wasm32-unknown-unknown, pairing SOURCE_FILE with libtomcrypt.c.

The sources are generated from signed SQLCipher and libtomcrypt releases by upgrade.sh and ship as released, except that SOURCE_FILE skips SQLCipher's .fini_array finalizer on __wasm__, which cannot hold that section, until sqlcipher/sqlcipher#622 is released. CI runs SQLCipher's and rusqlite's SQLCipher tests on them natively, and checks through sqlite-wasm-rs that files written natively and in Node, Chrome and Firefox open on both sides.

The crate is MIT, SQLCipher is BSD-3-Clause, SQLite is public domain, and libtomcrypt is public domain or WTFPL.