shepherd_rs/
lib.rs

1//! # Shepherd Framework
2//!
3//! This crate provides a general framework for writing schedulers that
4//! transform input data into output data by invoking workers.
5//!
6//! ## Features
7//! - **Flexible Worker Integration**: Workers can be implemented as separate
8//!   processes, remote services, or via Apache Kafka.
9//! - **Data Transformation**: Input data is transformed into output data using
10//!   configurable pipelines.
11//! - **Output Handling**: Output data can be sent to remote services, written
12//!   to files, or stored in databases.
13//!
14//! ## Modules
15//! - `config`: Handles composite configurations for the shepherd.
16//! - `consumer`: Manages consumption attempts and results.
17//! - `database`: Provides database abstractions for storing transformation
18//!   data.
19//! - `emitter`: Handles emission of transformation requests.
20//! - `instance`: Represents an shepherd instance.
21//! - `instrumentation`: Provides instrumentation for monitoring and debugging.
22//! - `processor`: Processes transformation requests and manages attempts.
23//! - `test`: Contains testing utilities and mock implementations.
24//! - `transform`: Defines transformation requests and attempts.
25//! - `worker`: Manages worker instances and their interactions.
26
27#![feature(associated_type_defaults)]
28
29pub mod config;
30pub mod consumer;
31pub mod database;
32pub mod emitter;
33pub mod instance;
34#[cfg(feature = "instrumentation")]
35pub mod instrumentation;
36pub mod processor;
37pub mod transform;
38pub mod worker;