oxigdal_streaming/lib.rs
1//! Real-time data processing and streaming pipelines for OxiGDAL.
2//!
3//! This crate provides a comprehensive streaming framework for processing
4//! geospatial data in real-time. It includes:
5//!
6//! - Stream traits and abstractions with backpressure handling
7//! - Windowing and watermarking for event-time processing
8//! - Rich set of transformations (map, filter, join, etc.)
9//! - Stateful operations with checkpointing
10//! - State backends (RocksDB) for fault tolerance
11//!
12//! # Example
13//!
14//! ```no_run
15//! # #[cfg(feature = "std")]
16//! use oxigdal_streaming::core::Stream;
17//!
18//! # async fn example() -> oxigdal_streaming::error::Result<()> {
19//! // Create a stream and apply transformations
20//! // let stream = Stream::new();
21//! // let transformed = stream.map(|x| x * 2).filter(|x| x > 10);
22//! # Ok(())
23//! # }
24//! ```
25
26#![cfg_attr(not(feature = "std"), no_std)]
27#![warn(missing_docs)]
28#![deny(unsafe_code)]
29
30// When no_std is active, bring in alloc for heap allocation (Vec, String, etc.)
31#[cfg(not(feature = "std"))]
32extern crate alloc;
33
34// All modules require std (async runtimes, I/O, Arrow, etc.)
35#[cfg(feature = "std")]
36pub mod arrow_ipc;
37#[cfg(feature = "std")]
38pub mod cloud;
39#[cfg(feature = "std")]
40pub mod core;
41pub mod error;
42#[cfg(feature = "std")]
43pub mod io_coalescing;
44#[cfg(feature = "std")]
45pub mod metrics;
46#[cfg(feature = "std")]
47pub mod mmap;
48#[cfg(feature = "std")]
49pub mod state;
50#[cfg(feature = "std")]
51pub mod transformations;
52#[cfg(feature = "std")]
53pub mod v2;
54#[cfg(feature = "std")]
55pub mod windowing;
56
57pub use error::{Result, StreamingError};