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