Crate exar [] [src]

Exar DB

Exar DB is an event store with streaming support which uses a flat-file for each collection of events

Database Initialization

extern crate exar;

use exar::*;

let config = DatabaseConfig::default();
let mut db = Database::new(config);

Publishing events

extern crate exar;

use exar::*;

let config = DatabaseConfig::default();
let mut db = Database::new(config);

let collection_name = "test";
let connection = db.connect(collection_name).unwrap();

match connection.publish(Event::new("payload", vec!["tag1", "tag2"])) {
    Ok(event_id) => println!("Published event with ID: {}", event_id),
    Err(err) => panic!("Unable to publish event: {}", err)
};

Querying events

extern crate exar;

use exar::*;

let config = DatabaseConfig::default();
let mut db = Database::new(config);

let collection_name = "test";
let connection = db.connect(collection_name).unwrap();

let query = Query::live().offset(0).limit(10).by_tag("tag1");
let event_stream = connection.subscribe(query).unwrap();
for event in event_stream {
    println!("Received event: {}", event);
}

Macros

tab_separated!

Generates a tab separated string from a list of string slices

Structs

Collection

Exar DB's collection of events, containing the reference to the log and index files.

CollectionConfig

Exar DB's collection configuration.

Connection

Exar DB's database connection, which contains a reference to a collection wrapped into an Arc/Mutex. It allows publishing and subscribing to the underling collection of events.

Database

Exar DB's main component, containing the database configuration and the references to the collections of events created. It is used to create new connections.

DatabaseConfig

Exar DB's configuration.

Event

Exar DB's event.

EventStream

Exar DB's event stream.

Interval

An interval.

Log

Exar DB's log file abstraction.

Logger

Exar DB's event logger.

PartialCollectionConfig

Exar DB's partial collection configuration. Holds overrides for the main database configuration.

PartialScannersConfig

Exar DB's partial scanners configuration. Holds overrides for the main database configuration.

Query

Exar DB's subscription query.

Scanner

Exar DB's log file scanner.

ScannerThread

Exar DB's log file scanner thread.

ScannersConfig

Exar DB's scanners configuration.

Subscription

Exar DB's subscription.

TabSeparatedParser

A parser for tab-separated strings

ValidationError

A validation error.

Enums

DatabaseError

A list specifying categories of database error.

EventStreamError

A list specifying categories of event stream error.

EventStreamMessage

Exar DB's event stream message.

ParseError

A list specifying categories of parse error.

RoutingStrategy

A list specifying categories of routing strategy.

ScannerAction

Traits

FromTabSeparatedStr

A trait for deserializing a type from a tab-separated string slice.

Merge

A trait for merging a type.

ToTabSeparatedString

A trait for serializing a type to a tab-separated string.

Validation

A trait for validating a type.

WriteLine

A trait for writing a line into a stream.