Skip to main content

camel_api/
lib.rs

1//! # rust-camel API
2//!
3//! Core Camel abstractions: exchanges, messages, body, errors, processors.
4//!
5//! Note: Component, Endpoint, Consumer, Producer traits are defined in
6//! `camel-component-api`. This crate focuses on data types and EIP abstractions.
7// TODO(API-006): Consider re-exporting Component, Endpoint, Consumer, Producer
8// from camel-component-api here for a unified API surface.
9
10pub mod aggregator;
11pub mod backoff;
12pub mod body;
13pub mod body_converter;
14pub mod circuit_breaker;
15pub mod data_format;
16pub mod declarative;
17pub mod delayer;
18pub mod dynamic_router;
19pub mod endpoint_pipeline;
20pub mod error;
21pub mod error_handler;
22pub mod exchange;
23pub mod filter;
24pub mod from_body;
25pub mod function;
26pub mod health;
27pub mod lifecycle;
28pub mod load_balancer;
29pub mod loop_eip;
30pub mod message;
31pub mod metrics;
32pub mod multicast;
33pub mod platform;
34pub mod processor;
35pub mod producer;
36pub mod recipient_list;
37pub mod route_controller;
38pub mod routing_slip;
39pub mod runtime;
40pub mod security_policy;
41pub mod splitter;
42pub mod stream_cache;
43pub mod supervision;
44pub mod template;
45pub mod throttler;
46pub mod unit_of_work;
47pub mod value;
48pub mod xml_convert;
49
50// Re-export core types at crate root for convenience.
51pub use aggregator::{AggregationFn, AggregatorConfig, CompletionCondition};
52pub use backoff::{BackoffConfig, BackoffState};
53pub use body::{Body, BoxAsyncRead, StreamBody, StreamMetadata};
54pub use body_converter::{BodyType, convert as convert_body};
55pub use circuit_breaker::CircuitBreakerConfig;
56pub use data_format::DataFormat;
57pub use declarative::{LanguageExpressionDef, ValueSourceDef};
58pub use delayer::DelayConfig;
59pub use dynamic_router::{DynamicRouterConfig, RouterExpression};
60pub use endpoint_pipeline::{CAMEL_SLIP_ENDPOINT, EndpointPipelineConfig, EndpointResolver};
61pub use error::CamelError;
62pub use error_handler::{
63    ErrorHandlerConfig, ExceptionPolicy, ExceptionPolicyBuilder, HEADER_REDELIVERED,
64    HEADER_REDELIVERY_COUNTER, HEADER_REDELIVERY_MAX_COUNTER, RedeliveryPolicy,
65};
66pub use security_policy::{
67    AuthorizationDecision, PRINCIPAL_AUDIENCE_KEY, PRINCIPAL_CLAIMS_KEY, PRINCIPAL_ISSUER_KEY,
68    PRINCIPAL_KEY, PRINCIPAL_ROLES_KEY, PRINCIPAL_SCOPES_KEY, PRINCIPAL_SUBJECT_KEY, Principal,
69    SecurityPolicy, SecurityPolicyConfig, store_principal_properties,
70};
71// Backwards compatibility re-export (deprecated)
72#[allow(deprecated)]
73pub use error_handler::ExponentialBackoff;
74pub use exchange::{Exchange, ExchangePattern};
75pub use filter::FilterPredicate;
76pub use from_body::FromBody;
77pub use function::{
78    ExchangePatch, FunctionDefinition, FunctionDiff, FunctionId, FunctionInvocationError,
79    FunctionInvoker, FunctionInvokerSync, PatchBody,
80};
81pub use health::{AsyncHealthCheck, CheckResult, HealthReport, HealthSource, ServiceHealth};
82pub use lifecycle::{HealthStatus, Lifecycle, ServiceStatus};
83pub use load_balancer::{LoadBalanceStrategy, LoadBalancerConfig};
84pub use message::Message;
85pub use metrics::{MetricsCollector, NoOpMetrics};
86pub use multicast::{MulticastAggregationFn, MulticastConfig, MulticastStrategy};
87pub use platform::{
88    LeadershipEvent, LeadershipHandle, LeadershipService, NoopLeadershipService,
89    NoopPlatformService, NoopReadinessGate, PlatformError, PlatformIdentity, PlatformService,
90    ReadinessGate,
91};
92pub use processor::{
93    BoxProcessor, BoxProcessorExt, IdentityProcessor, Processor, ProcessorFn, SyncBoxProcessor,
94};
95pub use producer::ProducerContext;
96pub use route_controller::{RouteAction, RouteController, RouteStatus};
97pub use routing_slip::{RoutingSlipConfig, RoutingSlipExpression};
98pub use runtime::{
99    CANONICAL_CONTRACT_DECLARATIVE_ONLY_STEPS, CANONICAL_CONTRACT_EXCLUDED_DECLARATIVE_STEPS,
100    CANONICAL_CONTRACT_NAME, CANONICAL_CONTRACT_RUST_ONLY_STEPS,
101    CANONICAL_CONTRACT_SUPPORTED_STEPS, CANONICAL_CONTRACT_VERSION, CanonicalRouteSpec,
102    RuntimeCommand, RuntimeCommandBus, RuntimeCommandResult, RuntimeEvent, RuntimeHandle,
103    RuntimeQuery, RuntimeQueryBus, RuntimeQueryResult, canonical_contract_rejection_reason,
104    canonical_contract_supports_step,
105};
106pub use splitter::{
107    AggregationStrategy, SplitExpression, SplitterConfig, split_body, split_body_json_array,
108    split_body_lines,
109};
110pub use supervision::SupervisionConfig;
111pub use throttler::{ThrottleStrategy, ThrottlerConfig};
112pub use unit_of_work::UnitOfWorkConfig;
113pub use value::{Headers, Value};
114
115// Template types
116pub use template::{
117    RouteTemplateSpec, TemplateError, TemplateInstanceRecord, TemplateParameterSpec,
118    TemplatedRouteSpec,
119};