allora_core/lib.rs
1//! Allora Core – foundational message and processing types (multi-crate split).
2//!
3//! This crate defines the fundamental primitives used by higher-level crates:
4//! * Message / Payload
5//! * Exchange
6//! * Error / Result
7//! * Processor trait (+ ClosureProcessor helper)
8//! * Service & ServiceActivator traits
9//! * Channel traits (Channel, PollableChannel, SubscribableChannel, CorrelationSupport)
10//!
11//! Concrete channel implementations (DirectChannel, QueueChannel) remain in the parent crate
12//! until migration completes. This core crate intentionally avoids depending on higher-level
13//! components (adapters, endpoints, patterns) to prevent circular dependencies.
14//!
15//! NOTE: The #[service] macro currently targets the root `allora` crate (`allora::` path) and
16//! should not be invoked inside this core crate until the macro is generalized. Thus we do NOT
17//! re-export the macro from here.
18
19pub mod adapter;
20pub mod channel;
21pub mod endpoint;
22pub mod error;
23pub mod logging;
24pub mod message;
25pub mod patterns;
26pub mod processor;
27pub mod route;
28pub mod service;
29
30pub use channel::{Channel, ChannelRef, CorrelationSupport, PollableChannel, SubscribableChannel};
31pub use endpoint::{Endpoint, EndpointBuilder, EndpointSource, InMemoryEndpoint};
32pub use error::{Error, Result};
33pub use logging::{init_from_dir as core_init_logging, LoggingSettings};
34pub use message::{Exchange, Message, Payload};
35pub use patterns::filter::Filter;
36pub use processor::{BoxedProcessor, ClosureProcessor, Processor};
37pub use route::Route;
38pub use service::{Service, ServiceActivator};