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
8pub mod aggregator;
9pub mod backoff;
10pub mod body;
11pub mod body_converter;
12pub mod cache;
13pub mod circuit_breaker;
14pub mod claim_check;
15pub mod component_metadata;
16pub mod component_metrics;
17pub mod data_format;
18pub mod datasource;
19pub mod declarative;
20pub mod delayer;
21pub mod dynamic_router;
22pub mod endpoint_pipeline;
23pub mod endpoint_uri;
24pub mod error;
25pub mod error_handler;
26pub mod exchange;
27pub mod exchange_lookup;
28pub mod filter;
29pub mod from_body;
30pub mod function;
31pub mod health;
32
33pub mod idempotent;
34pub mod in_flight;
35pub mod lifecycle;
36pub mod load_balancer;
37pub mod loop_eip;
38pub mod message;
39pub mod metrics;
40pub mod multicast;
41pub mod outcome_pipeline;
42pub mod outcome_segment;
43pub mod pipeline_outcome;
44pub mod platform;
45pub mod processor;
46pub mod producer;
47pub mod recipient_list;
48pub mod redact;
49pub mod resequencer;
50pub mod reserved_suffix;
51pub mod route_controller;
52pub mod routing_slip;
53pub mod runtime;
54pub mod security_policy;
55pub mod span_kind;
56pub mod splitter;
57pub mod ssrf;
58pub mod step_lifecycle;
59pub mod stream_cache;
60pub mod supervision;
61pub mod template;
62pub mod throttler;
63pub mod unit_of_work;
64pub mod value;
65pub mod xml_convert;
66
67// Re-export core types at crate root for convenience.
68pub use aggregator::{AggregationFn, AggregatorConfig, CompletionCondition};
69pub use backoff::{BackoffConfig, BackoffState};
70pub use body::{Body, BoxAsyncRead, StreamBody, StreamMetadata, body_type_name};
71pub use body_converter::{BodyType, convert as convert_body};
72pub use cache::{CacheEntry, CacheRepository, CacheStats, ContentType};
73pub use circuit_breaker::CircuitBreakerConfig;
74pub use component_metrics::ComponentMetrics;
75pub use data_format::DataFormat;
76pub use datasource::{
77    DatasourceCatalog, DatasourceConfig, DatasourceHandle, PoolFactory, ResourceRef,
78};
79pub use declarative::{LanguageExpressionDef, ValueSourceDef};
80pub use delayer::{DEFAULT_MAX_DELAY_MS, DelayConfig};
81pub use dynamic_router::{DynamicRouterConfig, RouterExpression};
82pub use endpoint_pipeline::{CAMEL_SLIP_ENDPOINT, EndpointPipelineConfig, EndpointResolver};
83pub use endpoint_uri::EndpointUri;
84pub use error::{
85    CIRCUIT_OPEN, CamelError, ConfigValidationError, EndpointUriError, OpaqueErrorSource,
86};
87pub use error_handler::{
88    BoundaryKind, ErrorHandlerConfig, ExceptionDisposition, ExceptionPolicy,
89    ExceptionPolicyBuilder, HEADER_REDELIVERED, HEADER_REDELIVERY_COUNTER,
90    HEADER_REDELIVERY_MAX_COUNTER, PolicyId, RedeliveryPolicy, RetryOutcome, RetryableStep,
91    StepDisposition,
92};
93pub use security_policy::{
94    AccessMode, AudienceBinding, AuthContext, AuthPrincipal, AuthorizationDecision,
95    PRINCIPAL_AUDIENCE_KEY, PRINCIPAL_CLAIMS_KEY, PRINCIPAL_ISSUER_KEY, PRINCIPAL_KEY,
96    PRINCIPAL_ROLES_KEY, PRINCIPAL_SCOPES_KEY, PRINCIPAL_SUBJECT_KEY, Principal, RouteSecurityPlan,
97    SecurityPolicy, SecurityPolicyConfig, TransportId, store_principal_properties,
98};
99pub use span_kind::SpanKindHint;
100// Backwards compatibility re-export (deprecated)
101pub use claim_check::ClaimCheckRepository;
102#[allow(deprecated)]
103pub use error_handler::ExponentialBackoff;
104pub use exchange::{
105    CAMEL_STOP, Exchange, ExchangePattern, ORIGINAL_MESSAGE_EXTENSION, is_camel_stop,
106};
107pub use exchange_lookup::{ExchangeLookupPath, LookupPathError, PathSegment};
108pub use filter::FilterPredicate;
109pub use from_body::FromBody;
110pub use function::{
111    ExchangePatch, FunctionDefinition, FunctionDiff, FunctionId, FunctionInvocationError,
112    FunctionInvoker, FunctionInvokerSync, PatchBody,
113};
114pub use health::{AsyncHealthCheck, CheckResult, HealthReport, HealthSource, ServiceHealth};
115pub use idempotent::IdempotentRepository;
116pub use in_flight::{InFlightClaim, InFlightGauge};
117pub use lifecycle::{HealthStatus, Lifecycle, ServiceStatus};
118pub use load_balancer::{LoadBalanceStrategy, LoadBalancerConfig};
119pub use message::Message;
120pub use metrics::{CompositeMetricsCollector, MetricsCollector, MetricsHandle, NoOpMetrics};
121pub use multicast::{MulticastAggregationFn, MulticastConfig, MulticastStrategy};
122pub use outcome_pipeline::OutcomePipeline;
123pub use outcome_segment::OutcomeSegment;
124pub use pipeline_outcome::PipelineOutcome;
125pub use platform::{
126    LeadershipEvent, LeadershipHandle, LeadershipService, NoopLeadershipService,
127    NoopPlatformService, NoopReadinessGate, PlatformError, PlatformIdentity, PlatformService,
128    ReadinessGate,
129};
130pub use processor::{
131    BoxProcessor, BoxProcessorExt, IdentityProcessor, OpaqueProcessor, Processor, ProcessorFn,
132    SyncBoxProcessor,
133};
134pub use producer::ProducerContext;
135pub use resequencer::{
136    BatchCompletion, CapacityPolicy, GapPolicy, ResequenceMode, ResequencePolicyConfig,
137};
138pub use route_controller::{RouteAction, RouteController, RouteStatus};
139pub use routing_slip::{RoutingSlipConfig, RoutingSlipExpression};
140pub use runtime::{
141    CANONICAL_CONTRACT_DECLARATIVE_ONLY_STEPS, CANONICAL_CONTRACT_EXCLUDED_DECLARATIVE_STEPS,
142    CANONICAL_CONTRACT_NAME, CANONICAL_CONTRACT_RUST_ONLY_STEPS,
143    CANONICAL_CONTRACT_SUPPORTED_STEPS, CANONICAL_CONTRACT_VERSION, CanonicalConcurrencySpec,
144    CanonicalFieldLoss, CanonicalLossReport, CanonicalRouteSpec, RuntimeCommand, RuntimeCommandBus,
145    RuntimeCommandResult, RuntimeEvent, RuntimeHandle, RuntimeQuery, RuntimeQueryBus,
146    RuntimeQueryResult, canonical_contract_rejection_reason, canonical_contract_supports_step,
147};
148pub use splitter::{
149    AggregationStrategy, SplitExpression, SplitterConfig, StreamSplitConfig, StreamSplitFormat,
150    StreamingSplitExpression, fragment_exchange, split_body, split_body_json_array,
151    split_body_lines, streaming_split_type_error,
152};
153pub use ssrf::{SsrfPolicy, is_ssrf_blocked_ip};
154pub use step_lifecycle::{StepLifecycle, StepShutdownReason};
155pub use supervision::SupervisionConfig;
156pub use throttler::{ThrottleStrategy, ThrottlerConfig};
157pub use unit_of_work::UnitOfWorkConfig;
158pub use value::{Headers, Value, cmp_values, value_type_name};
159
160// Template types
161pub use template::{
162    RouteTemplateSpec, TemplateError, TemplateInstanceRecord, TemplateParameterSpec,
163    TemplatedRouteSpec,
164};