https://github.com/coleifer/sqlcipher3
Python 3 bindings for SQLCipher
https://github.com/coleifer/sqlcipher3
Last synced: 8 months ago
JSON representation
Python 3 bindings for SQLCipher
- Host: GitHub
- URL: https://github.com/coleifer/sqlcipher3
- Owner: coleifer
- License: zlib
- Created: 2019-06-03T14:08:14.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-11-01T16:12:45.000Z (about 1 year ago)
- Last Synced: 2025-05-16T18:09:39.345Z (8 months ago)
- Language: C
- Size: 285 KB
- Stars: 104
- Watchers: 6
- Forks: 23
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
sqlcipher3
==========
This library takes [pysqlite3](https://github.com/coleifer/pysqlite3) and makes
some small modifications so it is suitable for use with
[sqlcipher](https://github.com/sqlcipher/sqlcipher) (sqlite with encryption).
Additional features:
* User-defined window functions (requires SQLite >= 3.25)
* Flags and VFS an be specified when opening connection
* Incremental BLOB I/O, [bpo-24905](https://github.com/python/cpython/pull/271)
* Improved error messages, [bpo-16379](https://github.com/python/cpython/pull/1108)
* Simplified detection of DML statements via `sqlite3_stmt_readonly`.
* Sqlite native backup API (also present in standard library 3.7 and newer).
A completely self-contained binary package (wheel) is available for versions
0.4.0 and newer as `sqlcipher3-binary`. This package contains the latest
release of sqlcipher compiled with numerous extensions, and requires no
external dependencies.
Building with System SQLCipher
------------------------------
To build `sqlcipher3` linked against the system SQLCipher, run:
```
$ python setup.py build
```
Building a statically-linked library
------------------------------------
To build `sqlcipher3` statically-linked against a particular version of
SQLCipher, you need to obtain the SQLCipher source code and copy `sqlite3.c`
and `sqlite3.h` into the source tree.
```
# Download the latest version of SQLCipher source code and build the source
# amalgamation files (sqlite3.c and sqlite3.h).
$ git clone https://github.com/sqlcipher/sqlcipher
$ cd sqlcipher/
$ ./configure
$ make sqlite3.c
# Copy the sqlcipher amalgamation files into the root of the sqlcipher3
# checkout and run build_static + build:
$ cp sqlcipher/sqlite3.[ch] sqlcipher3/
$ cd sqlcipher3
$ python setup.py build_static build
```
You now have a statically-linked, completely self-contained `sqlcipher3`.
Using the binary package
------------------------
A binary package (wheel) is available for linux with a completely
self-contained `sqlcipher3`, statically-linked against the most recent release
of sqlcipher.
```
$ pip install sqlcipher3-binary
```