View Source Baobab (Baobab v0.30.0)
Baobab is an Elixir implementation of the Bamboo append-only log.
It is fairly opinionated about the DETS persistence of the logs. They are considered to be a spool of the logs as retreived.
Consumers of this library may wish to place a local copy of the logs in a store with better indexing and query properties.
Configuration
config :baobab, spool_dir: "/tmp"
Options
format
::entry
or:binary
, default::entry
log_id
: the author's log identifier, default0
clump_id
: the bamboo clump with which associated, default:"default"
revalidate
: confirm the store contents are unchanged, default:false
replace
: rewrite log contents even if it exists, default:false
Summary
Functions
A list of all {author, log_id, seqnum} tuples in the configured store
Retrieve the list of sequence numbers on a particular log identified by the author key and log number
Create and store a new log entry for a stored identity
Retrieve a list of all available clumps
Compact log contents to only items in the certificate pool for the latest entry. This allows validation while reducing space used
Create a clump
Drop a clump
Retrieve all available entries in a particular log
Retrieve an author log at a particular sequence number. Includes the available certificate pool for its verification.
Retreive a paticular entry by author and sequence number.
Retrieve all available author log entries over a specified range: {first, last}
.
Retrieve the latest sequence number on a particular log identified by the author key and log number
Purges a given log.
A list of {author, log_id, max_seqnum} tuples in the configured store
Functions
A list of all {author, log_id, seqnum} tuples in the configured store
Retrieve the list of sequence numbers on a particular log identified by the author key and log number
Create and store a new log entry for a stored identity
Retrieve a list of all available clumps
Compact log contents to only items in the certificate pool for the latest entry. This allows validation while reducing space used
Create a clump
Drop a clump
Retrieve all available entries in a particular log
Retrieve an author log at a particular sequence number. Includes the available certificate pool for its verification.
Using :max
as the sequence number will use the latest
Retreive a paticular entry by author and sequence number.
:max
for the sequence number retrieves the latest known entry
Retrieve all available author log entries over a specified range: {first, last}
.
Retrieve the latest sequence number on a particular log identified by the author key and log number
Purges a given log.
:all
may be specified for author
and/or the log_id
option.
Specifying both effectively clears the entire store.
Returns stored_info/0
Examples
iex> Baobab.purge(:all, log_id: :all) []
A list of {author, log_id, max_seqnum} tuples in the configured store