49 lines
1.1 KiB
Markdown
49 lines
1.1 KiB
Markdown
# @signalapp/sqlcipher
|
|
|
|
[](https://www.npmjs.com/package/@signalapp/sqlcipher)
|
|
|
|
A fast [N-API](https://github.com/nodejs/node-addon-api)-based Node.js addon
|
|
wrapping [sqlcipher](https://github.com/sqlcipher/sqlcipher) and Signal-specific
|
|
[FTS5 segmenting APIs](https://github.com/signalapp/Signal-FTS5-Extension).
|
|
|
|
## Usage
|
|
|
|
```js
|
|
import Database from '@signalapp/sqlcipher';
|
|
|
|
const db = new Database('/path/to/db');
|
|
|
|
db.exec(`
|
|
CREATE TABLE t (
|
|
a INTEGER,
|
|
b TEXT,
|
|
c BLOB
|
|
);
|
|
`);
|
|
|
|
const insert = db.prepare('INSERT INTO t (a, b, c) VALUES ($a, $b, $c)');
|
|
insert.run({ a: 1, b: 'hello', c: Buffer.from('world') });
|
|
insert.run({ a: 2, b: 'world', c: Buffer.from('hello') });
|
|
|
|
console.log(db.prepare('SELECT * FROM t').all());
|
|
```
|
|
|
|
## Updating sqlcipher
|
|
|
|
On macOS:
|
|
|
|
```sh
|
|
cd deps/sqlcipher
|
|
export OPENSSL_PREFIX=`brew --prefix openssl`
|
|
export CFLAGS="-I $OPENSSL_PREFIX/include"
|
|
export LIBRARY_PATH="$LIBRARY_PATH:$OPENSSL_PREFIX/lib"
|
|
./update.sh v4.10.0
|
|
cd -
|
|
```
|
|
|
|
## License
|
|
|
|
Copyright 2025 Signal Messenger, LLC.
|
|
|
|
Licensed under the AGPLv3: http://www.gnu.org/licenses/agpl-3.0.html
|