sqlcipher3
DB-API 2.0 interface for SQLCipher 4.x
Decision gist · record as of 2026-08-14
Yes, if you need encrypted SQLite databases in Python. The package is actively maintained, has no known vulnerabilities, uses a permissive MIT license, and offers prebuilt wheels for common platforms. Install friction is moderate due to C compilation, but wheels reduce friction significantly. Not necessary if standard unencrypted SQLite meets your security requirements.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >= 3.9; prebuilt wheels available for Python 3.10 and 3.11 on major platforms, but other versions may require building from source with a C compiler and SQLCipher development libraries.
- Medium install friction due to compiled C extensions; prebuilt wheels are available for Python 3.10 and 3.11 on common platforms (macOS, Linux, Windows), but building from source requires a C compiler and SQLCipher development headers.
- Repository is actively maintained with a recent commit on 2026-01-08.
License · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute sqlcipher3 freely provided you include the license notice.
last release 2026-01-07 (219 days) · last repo commit 2026-01-08 · 125 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 238,598 downloads/mo, #8,934 on PyPI
Alternatives
Verify before relying
import sqlcipher3
conn = sqlcipher3.connect(':memory:')
conn.execute('PRAGMA key="password"')
cursor = conn.cursor()
cursor.execute('CREATE TABLE test (id INTEGER, name TEXT)')
conn.commit()- Whether prebuilt wheels exist for Python 3.9 or Python 3.12+ versions beyond what the friction evidence shows.
- Performance characteristics and encryption overhead compared to standard sqlite3.
- Compatibility with the separate sqlcipher3-binary package and when to choose one over the other.
What it is and what it does
sqlcipher3 wraps SQLCipher (an encrypted variant of SQLite) and exposes it through Python's standard DB-API 2.0 interface. It is based on pysqlite3 with modifications to work with SQLCipher's encryption layer, allowing you to create and query encrypted SQL databases from Python code. The package includes enhancements over the standard library sqlite3 module, such as user-defined window functions, incremental BLOB I/O, and a native backup API.
Installation offers two paths: building from source (which requires a C compiler and SQLCipher headers) or using prebuilt wheels for common platforms. The repository is actively maintained and has no known security vulnerabilities. It targets Python 3.9 and newer, with prebuilt wheels currently available for Python 3.10 and 3.11 on macOS, Linux, and Windows architectures.
Use it for
- Building applications that require encrypted local databases without external server infrastructure.
- Migrating from standard SQLite to encrypted storage while keeping DB-API 2.0 compatibility.
- Storing sensitive user data (credentials, personal information) in a file-based encrypted database.
- Protects database files at rest; useful for mobile apps, desktop tools, or embedded systems.
- Incremental BLOB I/O for efficient handling of large binary objects within encrypted databases.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need encrypted SQLite databases in Python.
The package is actively maintained, has no known vulnerabilities, uses a permissive MIT license, and offers prebuilt wheels for common platforms. Install friction is moderate due to C compilation, but wheels reduce friction significantly. Not necessary if standard unencrypted SQLite meets your security requirements.
Install
sqlcipher3 on PyPI
Before you install
Medium install friction due to compiled C extensions; prebuilt wheels are available for Python 3.10 and 3.11 on common platforms (macOS, Linux, Windows), but building from source requires a C compiler and SQLCipher development headers. Repository is actively maintained with a recent commit on 2026-01-08.
Requires Python >= 3.9; prebuilt wheels available for Python 3.10 and 3.11 on major platforms, but other versions may require building from source with a C compiler and SQLCipher development libraries.
License in practice
MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute sqlcipher3 freely provided you include the license notice.
Quickstart
import sqlcipher3
conn = sqlcipher3.connect(':memory:')
conn.execute('PRAGMA key="password"')
cursor = conn.cursor()
cursor.execute('CREATE TABLE test (id INTEGER, name TEXT)')
conn.commit()
Verify before relying
- Whether prebuilt wheels exist for Python 3.9 or Python 3.12+ versions beyond what the friction evidence shows.
- Performance characteristics and encryption overhead compared to standard sqlite3.
- Compatibility with the separate sqlcipher3-binary package and when to choose one over the other.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | None |
| Maintenance | Aging 219 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 238,598 / month, #8,934 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Programming Language :: CProgramming Language :: PythonProgramming Language :: Python :: 3Topic :: DatabaseTopic :: Database :: Database Engines/ServersTopic :: Database :: Front-EndsTopic :: Software DevelopmentTopic :: Software Development :: Libraries :: Python Modules |
Evidence: sqlcipher3-0.6.2-cp310-cp310-macosx_10_9_universal2.whl; sqlcipher3-0.6.2-cp310-cp310-macosx_10_9_x86_64.whl; sqlcipher3-0.6.2-cp310-cp310-macosx_11_0_arm64.whl; sqlcipher3-0.6.2-cp310-cp310-manylinux_2_28_aarch64.whl; sqlcipher3-0.6.2-cp310-cp310-manylinux_2_28_i686.whl; sqlcipher3-0.6.2-cp310-cp310-manylinux_2_28_x86_64.whl; sqlcipher3-0.6.2-cp310-cp310-musllinux_1_2_aarch64.whl; sqlcipher3-0.6.2-cp310-cp310-musllinux_1_2_x86_64.whl; sqlcipher3-0.6.2-cp310-cp310-win32.whl; sqlcipher3-0.6.2-cp310-cp310-win_amd64.whl; sqlcipher3-0.6.2-cp310-cp310-win_arm64.whl; sqlcipher3-0.6.2-cp311-cp311-macosx_10_9_universal2.whl; sqlcipher3-0.6.2-cp311-cp311-macosx_10_9_x86_64.whl; sqlcipher3-0.6.2-cp311-cp311-macosx_11_0_arm64.whl; sqlcipher3-0.6.2-cp311-cp311-manylinux_2_28_aarch64.whl; sqlcipher3-0.6.2-cp311-cp311-manylinux_2_28_i686.whl; sqlcipher3-0.6.2-cp311-cp311-manylinux_2_28_x86_64.whl; sqlcipher3-0.6.2-cp311-cp311-musllinux_1_2_aarch64.whl; sqlcipher3-0.6.2-cp311-cp311-musllinux_1_2_x86_64.whl; sqlcipher3-0.6.2-cp311-cp311-win32.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “encrypted sql database”
- sqlcipher3sqlcipher3 is a Python DB-API 2.0 interface to SQLCipher, providing…
- sqlcipher3-binaryA Python DB-API 2.0 interface to SQLCipher, providing encrypted…
- sqlcipher3-wheelsProvides a Python DB-API 2.0 interface to SQLCipher, enabling…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also sqlcipher3-binary · sqlcipher3-wheels · pysqlite3 · sqlean.py · pysqlite3-binary · django-encrypted-model-fields · dynamodb-encryption-sdk · djfernet · pymssql · django-fernet-fields-v2