KubeMQ
Client SDKsRustReference

Queues

QueueMessage, QueuePolicy, and point-to-point queue operations

QueueMessage

A message for the point-to-point queue pattern. Messages are persisted and delivered to exactly one consumer.

FieldTypeDescription
idStringMessage ID (auto-generated UUID v4 when empty)
client_idStringSender identity override
channelStringTarget queue channel name (required)
metadataStringOptional UTF-8 metadata
bodyVec<u8>Message payload bytes
tagsHashMap<String, String>Arbitrary key-value pairs
policyOption<QueuePolicy>Delivery policy (expiration, delay, dead-letter)
attributesOption<QueueMessageAttributes>Server-assigned attributes (receive only)

Builder

main.rs
let msg = QueueMessage::builder()
    .channel("tasks")
    .body(b"process-order-42".to_vec())
    .expiration_seconds(300)
    .max_receive_count(3)
    .max_receive_queue("tasks.dead-letter")
    .build();

QueuePolicy

Controls expiration, delayed delivery, and dead-letter routing.

FieldTypeDefaultDescription
expiration_secondsi320Seconds until message expires (0 = no expiration)
delay_secondsi320Seconds to delay before visible (0 = immediate)
max_receive_counti320Max delivery attempts before dead-letter (0 = unlimited)
max_receive_queueString""Dead-letter queue channel

QueueSendResult

Returned by send_queue_message.

FieldTypeDescription
message_idStringServer-assigned message identifier
sent_ati64Acceptance timestamp (Unix nanoseconds)
expiration_ati64Expiration timestamp
delayed_toi64Delay-until timestamp
is_errorboolWhether the server reported an error
errorStringError message when is_error is true

QueueMessageAttributes

Server-assigned attributes on received messages.

FieldTypeDescription
timestampi64Enqueue timestamp (Unix nanoseconds)
sequenceu64Monotonic sequence within the queue
md5_of_bodyStringMD5 hash of the message body
receive_counti32Number of deliveries (including current)
re_routedboolWhether re-routed from another queue
re_routed_from_queueStringOriginal queue when re_routed is true
expiration_ati64Expiration timestamp
delayed_toi64Delay-until timestamp

Client Methods

send_queue_message

main.rs
let result = client.send_queue_message(msg).await?;
println!("Sent: {}", result.message_id);

send_queue_messages

Batch send multiple messages.

main.rs
let results = client.send_queue_messages(vec![msg1, msg2]).await?;

receive_queue_messages

Pull messages from a queue.

main.rs
let messages = client.receive_queue_messages("tasks", 10, 5, false).await?;

ack_all_queue_messages

Acknowledge all pending messages.

main.rs
let req = AckAllQueueMessagesRequest {
    request_id: String::new(),
    client_id: String::new(),
    channel: "tasks".to_string(),
    wait_time_seconds: 5,
};
let resp = client.ack_all_queue_messages(&req).await?;

Was this page helpful?

On this page