Skip to main content

Crate sqlite3mc_src

Crate sqlite3mc_src 

Source
Expand description

§sqlite3mc-src

CI Coverage Quality gate crates.io docs.rs license

The SQLite3 Multiple Ciphers amalgamation, byte for byte as released, for -sys crates to compile with their own options. It compiles nothing and sets no defines, so every consumer keeps its own flags while one Cargo.lock gives them all the same source.

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

The version encodes the release, so 205.1.x is SQLite3MC 2.5.1. A 205.1 requirement also accepts later 2.5 patch releases, never 2.6. Those may wrap a newer SQLite, named by SQLITE_VERSION, so a -sys crate with committed bindings regenerates them.

SQLite3MC is MIT licensed. The amalgamation also carries public-domain code (SQLite among it), a password-hashing file under CC0-1.0, a block under the Unlicense, and Argon2 under CC0-1.0 or Apache-2.0.

A daily workflow in the repository opens a pull request for each new SQLite3MC release, taking the archive’s checksum only from the release’s Sigstore-signed SHA256SUMS. CI re-runs upgrade.sh to prove the vendored bytes match the pinned release.

Constants§

EXTENSION_HEADER_FILE
SQLite’s extension header from the same release, inside source_dir.
HEADER_FILE
Amalgamation header inside source_dir, under its upstream name.
SOURCE_FILE
Amalgamation source inside source_dir, under its upstream name.
SQLITE3MC_VERSION
SQLite3 Multiple Ciphers release the vendored amalgamation comes from.
SQLITE_VERSION
SQLite release that amalgamation wraps.

Functions§

source_dir
Directory holding the release files byte for byte, for a consumer’s build script to compile.