1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//! # Message DB
//!
//! **Rust Client for the Microservice Native Event Store and Message Store for
//! Postgres**
//!
//! A fully-featured event store and message store implemented in PostgreSQL for
//! Pub/Sub, Event Sourcing, Messaging, and Evented Microservices applications.
//!
//! For more information, see the Message DB project page.
//! <https://github.com/message-db/message-db>
//!
//! # Example
//!
//! ```ignore
//! use message_db::database::{MessageStore, WriteMessageOpts};
//! use serde_json::json;
//!
//! // Connect to MessageDb
//! let message_store = MessageStore::connect("postgres://postgres:password@localhost:5432/postgres").await?;
//!
//! // Get last stream message
//! let last_message = MessageStore::get_last_stream_message(&message_store, "account-123", None).await?;
//!
//! // Write message
//! let last_message = MessageStore::write_message(
//!     &message_store,
//!     "account-123",
//!     "AccountOpened",
//!     &json!({ "initial_balance": 0 }),
//!     &WriteMessageOpts::default(),
//! ).await?;
//! ```

#![warn(missing_docs)]
#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]

#[cfg(feature = "database")]
pub mod database;
pub mod message;
pub mod stream_name;

mod error;

pub use error::*;