camel-component
Component trait and registry for rust-camel
Overview
camel-component defines the core Component, Endpoint, Consumer, and Producer traits that all rust-camel components must implement. This crate provides the foundation for creating new components that can integrate with the rust-camel routing engine.
If you're building a custom component (e.g., for a proprietary protocol or service), you'll implement the traits defined in this crate.
Features
- Component trait: Factory for creating endpoints from URIs
- Endpoint trait: Represents a communication endpoint with consumer/producer support
- Consumer trait: Consumes messages from external sources
- Producer trait: Sends messages to external destinations
- Concurrency support: Built-in support for concurrent message processing
Installation
Add to your Cargo.toml:
[]
= "0.2"
Usage
Implementing a Custom Component
use ;
use ;
;
Core Types
| Type | Description |
|---|---|
Component |
Factory for creating endpoints |
Endpoint |
Communication endpoint (consumer/producer) |
Consumer |
Trait for consuming messages from endpoints |
ConsumerContext |
Context provided to Consumer implementations |
ProducerContext |
Context for creating producers |
ExchangeEnvelope |
Message envelope with optional reply channel |
ConcurrencyModel |
Sequential or Concurrent message processing |
ConcurrencyModel
- Sequential: Process messages one at a time in order. Use for simpler consumers where ordering matters.
- Concurrent: Process multiple messages simultaneously. Use for higher throughput when order doesn't matter.
Documentation
License
Apache-2.0
Contributing
Contributions are welcome! Please see the main repository for details.