Skip to main content

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}