A no_std Rust implementation of the Management Component Transport Protocol (MCTP) as defined in the DMTF DSP0236 specification.
MCTP is a communication protocol designed for platform management subsystems in computer systems. It facilitates communication between management controllers (like BMCs) and managed devices across various bus types. This library provides:
- Protocol Implementation: Complete MCTP transport layer with packet assembly/disassembly
- Medium Abstraction: Support for different physical transport layers (SMBus/eSPI included)
- No-std Compatible: Suitable for embedded and resource-constrained environments
espi- Enables eSPI device support via theespi-devicecrateodp- Enables ODP specific message types - docs
See the crate documentation for up-to-date usage and examples: Rendered Docs
The library is structured around:
MctpPacketContext: Main entry point for handling MCTP packetsMctpMedium: Trait for implementing transport-specific packet handlingMctpMessage: Represents a complete MCTP message with reply context- Control Commands: Type-safe implementation of MCTP control protocol
MIT License - see LICENSE.md for details.
- Ensure
cargo checkandcargo testpass - Test with all feature combinations using
cargo hack --feature-powerset check - Maintain
no_stdcompatibility - Follow the existing code patterns for protocol message handling