#encryption #query #tags #path #key-value #session #namespaces

alexandria

An encrypted document-oriented database with tag based query support

1 unstable release

0.2.0 Apr 14, 2021
0.1.0 Dec 30, 2017

#1231 in Database interfaces

GPL-3.0-or-later and AGPL-3.0-or-later

125KB
3K SLoC

alexandria 📚

Strongly typed, embedded record-database with built-in encryption at rest storage. Supports key-value Diff transactions, as well as externally loaded binary payloads. Encrypted metadata without extra configuration.

Alexandria has the following features:

  • Store data on internal db path
  • Query the database by path or dynamic search tags
  • Subscribe to events based on query
  • Iterate over query dynamically
  • Store data in session or global namespaces

Notice: alexandria should be considered experimental and not used in production systems where data loss is unacceptable.

How to use

Alexandria requires rustc 1.42 to compile.

use alexandria::{Library, Builder};
use tempfile::tempdir();

let dir = tempdir().unwrap();
let lib = Builder::new()
              .offset(dir.path())
              .root_sec("car horse battery staple")
              .build()?


Alexandria is developed as part of irdest. We have a Matrix channel! Please come by and ask us questions! (the issue tracker is a bad place to ask questions)

License

Alexandria is free software and part of irdest. You are free to use, modify and redistribute the source code under the terms of the GNU General Public License 3.0 or (at your choice) any later version. For a full copy of the license, see LICENSE in the source directory attached.

Additional Permissions: For Submission to the Apple App Store: Provided that you are otherwise in compliance with the GPLv3 for each covered work you convey (including without limitation making the Corresponding Source available in compliance with Section 6 of the GPLv3), the qaul developers also grant you the additional permission to convey through the Apple App Store non-source executable versions of the Program as incorporated into each applicable covered work as Executable Versions only under the Mozilla Public License version 2.0.

A copy of both the GPL-3.0 and MPL-2.0 license texts are included in this repository.

Dependencies

~25–37MB
~340K SLoC