[−][src]Crate lapin
lapin
This project follows the AMQP 0.9.1 specifications, targetting especially RabbitMQ.
Example
use env_logger; use log::info; use crate::lapin::{ BasicProperties, Channel, Connection, ConnectionProperties, ConsumerDelegate, message::Delivery, options::*, types::FieldTable, }; #[derive(Clone,Debug)] struct Subscriber { channel: Channel, } impl ConsumerDelegate for Subscriber { fn on_new_delivery(&self, delivery: Delivery) { self.channel.basic_ack(delivery.delivery_tag, BasicAckOptions::default()).as_error().expect("basic_ack"); } } fn main() { env_logger::init(); let addr = std::env::var("AMQP_ADDR").unwrap_or_else(|_| "amqp://127.0.0.1:5672/%2f".into()); let conn = Connection::connect(&addr, ConnectionProperties::default()).wait().expect("connection error"); info!("CONNECTED"); let channel_a = conn.create_channel().wait().expect("create_channel"); let channel_b = conn.create_channel().wait().expect("create_channel"); channel_a.queue_declare("hello", QueueDeclareOptions::default(), FieldTable::default()).wait().expect("queue_declare"); let queue = channel_b.queue_declare("hello", QueueDeclareOptions::default(), FieldTable::default()).wait().expect("queue_declare"); info!("will consume"); channel_b.clone().basic_consume(&queue, "my_consumer", BasicConsumeOptions::default(), FieldTable::default()).wait().expect("basic_consume").set_delegate(Box::new(Subscriber { channel: channel_b })); let payload = b"Hello world!"; loop { channel_a.basic_publish("", "hello", BasicPublishOptions::default(), payload.to_vec(), BasicProperties::default()).wait().expect("basic_publish"); } }
Re-exports
pub use amq_protocol::tcp; |
pub use amq_protocol::types; |
pub use amq_protocol::uri; |
Modules
auth | Utility to handle SASL authentication with AMQP server |
confirmation | |
message | |
options | |
protocol | The AMQ Protocol implementation (Generated) |
Structs
Channel | |
ChannelStatus | |
Configuration | |
Connection | |
ConnectionProperties | |
ConnectionStatus | |
Consumer | |
Error | The type of error that can be returned in this crate. |
Queue |
Enums
ChannelState | |
ConnectionState | |
ErrorKind | The different kinds of errors that can be reported. |
Traits
Connect | Trait providing a method to connect to an AMQP server |
ConsumerDelegate |
Type Definitions
BasicProperties | Type alias for AMQP BasicProperties |