@@ -5,12 +5,76 @@ master: [ - requires additional work with block-encryption
14+
815## Installation
916
1017``` sh
1118npm install --save @matrixai/db
1219```
1320
21+ ## Usage
22+
23+
24+ ``` ts
25+ import { DB } from ' @matrixai/db' ;
26+
27+ async function main () {
28+
29+ const key = Buffer .from ([
30+ 0x00 , 0x01 , 0x02 , 0x03 , 0x00 , 0x01 , 0x02 , 0x03 ,
31+ 0x00 , 0x01 , 0x02 , 0x03 , 0x00 , 0x01 , 0x02 , 0x03 ,
32+ ]);
33+
34+ const encrypt = async (
35+ key : ArrayBuffer ,
36+ plainText : ArrayBuffer
37+ ): Promise < ArrayBuffer > {
38+ return plainText;
39+ };
40+
41+ const decrypt = async (
42+ key : ArrayBuffer ,
43+ cipherText : ArrayBuffer
44+ ): Promise < ArrayBuffer | undefined > {
45+ return cipherText;
46+ }
47+
48+ const db = await DB .createDB ({
49+ dbPath: ' ./tmp/db' ,
50+ crypto: {
51+ key ,
52+ ops: { encrypt , decrypt },
53+ },
54+ fresh: true ,
55+ });
56+
57+ await db .put ([' level' , Buffer .from ([0x30 , 0x30 ]), ' a' ], ' value' );
58+ await db .put ([' level' , Buffer .from ([0x30 , 0x31 ]), ' b' ], ' value' );
59+ await db .put ([' level' , Buffer .from ([0x30 , 0x32 ]), ' c' ], ' value' );
60+ await db .put ([' level' , Buffer .from ([0x30 , 0x33 ]), ' c' ], ' value' );
61+
62+ console .log (await db .get ([' level' , Buffer .from ([0x30 , 0x32 ]), ' c' ]));
63+
64+ await db .del ([' level' , Buffer .from ([0x30 , 0x32 ]), ' c' ]);
65+
66+ for await (const [kP, v] of db .iterator ({
67+ lt: [Buffer .from ([0x30 , 0x32 ]), ' ' ],
68+ }, [' level' ])) {
69+ console .log (kP , v );
70+ }
71+
72+ await db .stop ();
73+ }
74+
75+ main ();
76+ ```
77+
1478## Development
1579
1680Run ` nix-shell ` , and once you're inside, you can use:
0 commit comments