Module engine::vault[][src]

Vault is an in-memory database specification which is designed to work without a central server. Only the user which holds the associated id and key may modify the data in a vault. Another owner can take control over the data if they know the id and the key.

Data can be added to the chain via a [DataTransaction]. The [DataTransaction] is associated to the chain through the owner’s ID and it contains its own randomly generated ID.

Records may also be revoked from the Vault through a [RevocationTransaction]. A [RevocationTransaction] is created and it references the id of a existing [DataTransaction]. The RevocationTransaction stages the associated record for deletion. The record is deleted when the DbView preforms a garbage collection and the [RevocationTransaction] is deleted along with it.

Re-exports

pub use crate::vault::view::DbView;

Modules

view

Structs

ChainId

A chain identifier. Used to identify a set of transactions in a version.

ClientId

Client Id type used to identify a client.

Id

A generic Id type used as the underlying type for the ClientId and VaultId types.

Key

A key to the crypto box. Key is stored on the heap which makes it easier to erase.

RecordHint

a record hint. Used as a hint to what this data is.

RecordId

A record identifier. Contains a ChainID which refers to the “chain” of transactions in the Version.

VaultId

Vault Id type used to identify a vault.

Traits

Base64Decodable

a trait to make types base64 decodable

Base64Encodable

a trait to make types base64 encodable

BoxProvider

A provider interface between the vault and a crypto box. See libsodium’s secretbox for an example.

Decrypt

Trait for decryptable data. Allows the data to be decrypted.

Encrypt

trait for encryptable data. Allows the data to be encrypted.