Skip to main content

rustvello_core/
lib.rs

1//! Core traits and types for the Rustvello distributed task system.
2//!
3//! This crate defines the abstract interfaces that all backend implementations
4//! must satisfy:
5//! - [`Broker`] — message routing between producers and runners
6//! - [`Orchestrator`] — invocation lifecycle and status management
7//! - [`StateBackend`] — persistence of invocations and results
8//! - [`Runner`] — task execution engine
9//! - [`ClientDataStore`] — external storage for large serialized values
10//!
11//! See `rustvello-mem` for in-memory implementations (testing),
12//! `rustvello-sqlite` for SQLite (single-host production),
13//! `rustvello-redis` for Redis, `rustvello-postgres` for PostgreSQL,
14//! `rustvello-mongo` / `rustvello-mongo3` for MongoDB, and
15//! `rustvello-rabbitmq` for RabbitMQ.
16
17pub mod broker;
18pub mod call;
19pub mod client_data_store;
20pub mod context;
21pub mod error;
22pub mod invocation;
23pub mod logging;
24pub mod middleware;
25pub mod observability;
26pub mod orchestrator;
27pub mod reconnectable;
28pub mod runner;
29pub mod serializer;
30pub mod state_backend;
31pub mod task;
32pub mod trigger;
33pub mod workflow;
34
35pub mod prelude {
36    pub use crate::broker::Broker;
37    pub use crate::call::Call;
38    pub use crate::client_data_store::{ClientDataStore, ClientDataStoreManager};
39    pub use crate::context::{
40        get_invocation_context, get_runner_context, InvocationContext, RunnerContext,
41    };
42    pub use crate::error::{RustvelloError, RustvelloResult};
43    pub use crate::invocation::{Invocation, InvocationHandle, SyncInvocation};
44    pub use crate::orchestrator::{
45        Orchestrator, OrchestratorBlocking, OrchestratorConcurrency, OrchestratorQuery,
46        OrchestratorRecovery, OrchestratorStatus,
47    };
48    pub use crate::runner::Runner;
49    pub use crate::serializer::{SerdeSerializer, Serializer};
50    pub use crate::state_backend::StateBackend;
51    pub use crate::task::{
52        CrossLanguageSafe, DynTask, ForeignTask, Task, TaskDefinition, TaskModule, TaskRegistry,
53    };
54    pub use crate::trigger::{TriggerManager, TriggerStore};
55    pub use rustvello_proto::prelude::*;
56}