1#![allow(clippy::result_large_err)]
3#![deny(missing_docs)]
4pub mod event;
40pub mod inmemory;
42pub mod migration;
44pub mod service;
46pub mod session;
48pub mod state;
50pub mod state_utils;
52
53#[cfg(feature = "encrypted-session")]
54pub mod encrypted;
56#[cfg(feature = "encrypted-session")]
57pub mod encryption_key;
59#[cfg(feature = "firestore")]
60pub mod firestore;
62#[cfg(feature = "mongodb")]
63pub mod mongodb;
65#[cfg(feature = "neo4j")]
66pub mod neo4j;
68#[cfg(feature = "postgres")]
69pub mod postgres;
71#[cfg(feature = "redis")]
72pub mod redis;
74#[cfg(feature = "sqlite")]
75pub mod sqlite;
77#[cfg(feature = "vertex-session")]
78pub mod vertex;
80
81pub use event::{Event, EventActions, Events};
82pub use inmemory::InMemorySessionService;
83pub use service::{
84 AppendEventRequest, CreateRequest, DeleteRequest, GetRequest, ListRequest, SessionService,
85};
86pub use session::{KEY_PREFIX_APP, KEY_PREFIX_TEMP, KEY_PREFIX_USER, Session};
87pub use state::{ReadonlyState, State};
88pub use state_utils::{extract_state_deltas, merge_states};
89
90#[cfg(feature = "sqlite")]
91pub use sqlite::SqliteSessionService;
92
93#[cfg(feature = "encrypted-session")]
94pub use encrypted::EncryptedSession;
95#[cfg(feature = "encrypted-session")]
96pub use encryption_key::EncryptionKey;
97#[cfg(feature = "firestore")]
98pub use firestore::{
99 FirestoreSessionConfig, FirestoreSessionService, app_state_path as firestore_app_state_path,
100 event_path as firestore_event_path, session_path as firestore_session_path,
101 user_state_path as firestore_user_state_path,
102};
103#[cfg(feature = "mongodb")]
104pub use mongodb::MongoSessionService;
105#[cfg(feature = "neo4j")]
106pub use neo4j::Neo4jSessionService;
107#[cfg(feature = "postgres")]
108pub use postgres::PostgresSessionService;
109#[cfg(feature = "redis")]
110pub use redis::{
111 RedisSessionConfig, RedisSessionService, app_state_key, events_key, index_key, session_key,
112 user_state_key,
113};
114#[cfg(feature = "vertex-session")]
115pub use vertex::{VertexAiSessionConfig, VertexAiSessionService};