sqlcipher3-binary
DB-API 2.0 interface for SQLCipher 3.x
What it is and what it does
sqlcipher3-binary is a Python binding to SQLCipher, an encrypted variant of SQLite. It wraps pysqlite3 with modifications to work with SQLCipher's encryption layer, providing a DB-API 2.0 compatible interface for encrypted database operations. The package ships as a self-contained binary wheel that includes a pre-compiled SQLCipher with numerous extensions, eliminating the need to build or link against system libraries.
The library adds several enhancements over standard sqlite3: user-defined window functions, VFS and flags support when opening connections, incremental BLOB I/O, improved error messages, and access to SQLite's native backup API. Because SQLCipher 4.7.0 changed its build system and no longer provides a separate libsqlcipher, the binary wheel approach is now the recommended installation path for most users.
Use it for:
- Building applications that require encrypted-at-rest SQLite databases without managing separate encryption layers
- Migrating from pysqlite3 to add encryption to existing Python database code
- Prototyping or deploying encrypted local databases in desktop or embedded Python applications
- Using SQLite's window functions and backup API in encrypted database contexts
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A Python DB-API 2.0 interface to SQLCipher, providing encrypted SQLite database access with a self-contained binary wheel requiring no external dependencies.
Yes, if you need encrypted SQLite with minimal setup. The self-contained binary wheel eliminates build complexity. However, verify platform support matches your target (wheels shown are Linux x86_64 only), and note the package is aging—last release was 226 days ago. No known vulnerabilities. MIT license is permissive. Consider this if encryption at rest and DB-API 2.0 compatibility are your priorities.
Install
sqlcipher3-binary on PyPI
pip
pip install sqlcipher3-binaryuv
uv add sqlcipher3-binarypoetry
poetry add sqlcipher3-binaryInstalling sqlcipher3-binary
Before you install
Medium install friction due to compiled binary wheels. Package is aging (226 days since last release), though the repository remains active with recent commits. Wheels are available for multiple Python versions on Linux x86_64.
License in practice
MIT License permits commercial and private use with minimal restrictions, making it suitable for most projects that can accept permissive licensing.
Quickstart
pip install sqlcipher3-binary
import sqlcipher3
conn = sqlcipher3.connect(':memory:')
conn.execute('PRAGMA key = "password"')
cursor = conn.cursor()
cursor.execute('CREATE TABLE test (id INTEGER PRIMARY KEY, data TEXT)')
conn.commit()
Wheels are currently available only for Linux x86_64 with multiple Python versions; other platforms or Python versions may require building from source, which requires SQLCipher amalgamation sources.
Verify before relying
- Whether wheels are available for platforms beyond Linux x86_64 (macOS, Windows, ARM)
- Exact Python version support range (requires_python field is unspecified)
- Whether the bundled SQLCipher version and its extensions are documented
- Performance characteristics compared to standard sqlite3 or other encrypted alternatives
Package facts
| License | MIT License (permissive) |
| Python support | not specified |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | aging — 226 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 134,354/month — #11,479 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: sqlcipher3_binary-0.6.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; sqlcipher3_binary-0.6.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; sqlcipher3_binary-0.6.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; sqlcipher3_binary-0.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; sqlcipher3_binary-0.6.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; sqlcipher3_binary-0.6.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; sqlcipher3_binary-0.6.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
sqlcipher3sqlcipher3 is a Python DB-API 2.0 interface to…
permissive · top 15,000 on PyPI
sqlcipher3-wheelsProvides a Python DB-API 2.0 interface to…
permissive · top 15,000 on PyPI
pysqlite3pysqlite3 packages SQLite as a standalone…
permissive · top 15,000 on PyPI
pysqlite3-binaryProvides a self-contained SQLite database…
permissive · top 5,000 on PyPI
sqlean.pyA drop-in replacement for Python's sqlite3…
permissive · top 5,000 on PyPI
pymssqlpymssql provides a Python DB-API interface to…
copyleft · top 1,000 on PyPI
intersystems-irispythonProvides Python bindings to connect to and…
unclear · top 15,000 on PyPI
dynamodb-encryption-sdkEncrypts and decrypts DynamoDB items…
permissive · top 15,000 on PyPI
PyMySQLPyMySQL is a pure-Python MySQL and MariaDB…
permissive · top 1,000 on PyPI
django-encrypted-model-fieldsWraps Django model fields with transparent…
permissive · top 15,000 on PyPI