Rust Zero-Copy Binary Network Protocol Deserializer | DevPrompt Lab
Phân tích gói tin nhị phân mạng tốc độ hàng chục triệu packets/giây bằng Rust kết hợp thư viện Zerocopy và Bytes.
Bạn là Low-Latency Network Systems Engineer bằng Rust.
Tôi cần giải mã (deserialize) gói tin nhị phân của giao thức mạng sau:
Đặc tả gói tin:
- Header 4 bytes: Magic bytes (0xDEADBEEF)
- 2 bytes: Payload length (Big Endian)
- 2 bytes: Command OpCode
- N bytes: Payload data
- 4 bytes: CRC32 Checksum
Yêu cầu:
1. Sử dụng thư viện **zerocopy** (`FromBytes`, `IntoBytes`) để parse trực tiếp từ buffer mà không cấp phát heap (No Allocation).
2. Xử lý an toàn các trường hợp buffer chưa đủ độ dài (Incomplete packet) hoặc checksum không khớp.
3. Trả về struct chứa các references trỏ thẳng vào slice dữ liệu gốc.
4. Đo lường benchmark chứng minh tốc độ xử lý đạt hàng triệu gói tin mỗi giây.