Principle:Fede1024 Rust rdkafka Message Inspection
| Knowledge Sources | |
|---|---|
| Domains | Messaging, Data_Access |
| Last Updated | 2026-02-07 19:00 GMT |
Overview
A trait-based interface for reading Kafka message metadata and payload content with type-safe deserialization.
Description
Message Inspection provides read-only access to all fields of a Kafka message: payload, key, topic, partition, offset, timestamp, and headers. The Message trait defines a uniform interface that both BorrowedMessage and OwnedMessage implement.
The key method is payload_view which provides zero-copy typed deserialization of the payload bytes. For &str payloads, this validates UTF-8 without copying. The FromBytes trait enables custom deserialization types.
Timestamps can be NotAvailable, CreateTime, or LogAppendTime, allowing latency measurement between production and consumption.
Usage
Use the Message trait methods to access any field of a consumed message. Use payload_view::<str>() for text payloads and payload() for raw bytes. Use timestamp() for latency measurement.
Theoretical Basis
Pseudo-code logic:
// Abstract algorithm
message = consumer.recv()
payload = message.payload_view::<str>() // zero-copy UTF-8 view
key = message.key() // Option<&[u8]>
topic = message.topic() // &str
timestamp = message.timestamp() // CreateTime or LogAppendTime
partition = message.partition() // i32
offset = message.offset() // i64
headers = message.headers() // Option<&Headers>