pollen_rs/lib.rs
1//! Pollen: Embedded Decentralized Distributed Task Scheduler
2//!
3//! Pollen is like SQLite for task scheduling, but with peer-to-peer cluster capabilities.
4//!
5//! # Quick Start
6//!
7//! ```rust,no_run
8//! use pollen::{Pollen, Schedule, Storage};
9//! use std::time::Duration;
10//!
11//! #[tokio::main]
12//! async fn main() -> pollen::Result<()> {
13//! // Single-node mode
14//! let scheduler = Pollen::builder()
15//! .storage(Storage::sqlite("./pollen.db"))
16//! .build()
17//! .await?;
18//!
19//! // Define a task with cron schedule
20//! scheduler.define("daily_report")
21//! .schedule(Schedule::cron("0 9 * * *"))
22//! .handler(|| async { Ok(()) })
23//! .register()
24//! .await?;
25//!
26//! Ok(())
27//! }
28//! ```
29//!
30//! # Features
31//!
32//! - `metrics` - Enable Prometheus metrics collection
33//! - `otel` - Enable OpenTelemetry integration
34//! - `full` - Enable all optional features
35
36mod builder;
37
38#[cfg(feature = "metrics")]
39pub mod metrics;
40
41pub use builder::*;
42pub use pollen_types::prelude::*;
43
44/// Re-export commonly used types
45pub mod prelude {
46 pub use crate::builder::*;
47 pub use pollen_types::prelude::*;
48}