2 releases
Uses new Rust 2024
| 0.0.2 | Oct 14, 2025 |
|---|---|
| 0.0.1 | Sep 9, 2025 |
#1222 in Parser implementations
425KB
8K
SLoC
Unified Diagnostics Services (UDS) Protocol
This crate aims to offer an ergonomic implementation of the UDS protocol for tooling and test workloads in Rust. Embedded support is an explicit, non-goal of this library. It suppports both serialization and deserialization of UDS both protocol messages as well as custom data types. It is not in a complete state yet with the 0.1.0 release, please check back soon!
This library provides serialization and deserialization of UDS messages. It is based on the ISO 14229-1:2020 standard.
| Service Name | Request SID | Response SID | Support |
|---|---|---|---|
| DiagnosticSessionControl | 0x10 | 0x50 | ✓ |
| ECUReset | 0x11 | 0x51 | ✓ |
| ClearDiagnosticInformation | 0x14 | 0x54 | ✓ |
| ReadDTCInformation | 0x19 | 0x59 | Partial |
| ReadDataByIdentifier | 0x22 | 0x62 | ✓ |
| ReadMemoryByAddress | 0x23 | 0x63 | |
| ReadScalingDataByIdentifier | 0x24 | 0x64 | |
| SecurityAccess | 0x27 | 0x67 | ✓ |
| CommunicationControl | 0x28 | 0x68 | ✓ |
| Authentication | 0x29 | 0x69 | |
| ReadDataByPeriodicIdentifier | 0x2A | 0x6A | |
| WriteDataByIdentifier | 0x2E | 0x6E | ✓ |
| InputOutputControlByIdentifier | 0x2F | 0x6F | |
| RoutineControl | 0x31 | 0x71 | ✓ |
| RequestDownload | 0x34 | 0x74 | ✓ |
| RequestUpload | 0x35 | 0x75 | |
| TransferData | 0x36 | 0x76 | ✓ |
| RequestTransferExit | 0x37 | 0x77 | ✓ |
| RequestFileTransfer | 0x38 | 0x78 | ✓ |
| WriteMemoryByAddress | 0x3D | 0x7D | |
| TesterPresent | 0x3E | 0x7E | ✓ |
| SecuredDataTransmission | 0x84 | 0xC4 | |
| ControlDTCSetting | 0x85 | 0xC5 | ✓ |
| ResponseOnEvent | 0x86 | 0xC6 | |
| LinkControl | 0x87 | 0xC7 |
Dependencies
~0.6–1.7MB
~31K SLoC