SLMP API Parity
This page summarizes the user-facing SLMP operation surface across the maintained implementations. It is a navigation aid, not a live verification record.
Legend:
yes: implemented in the public low-level/client library surface.gap: intentionally not implemented in that library today; the note explains the current boundary.n/a: not a normal target for that implementation's scope.
Five-Implementation Snapshot
Snapshot date: 2026-07-06.
| Operation family | Python | .NET | C++ minimal | Rust | Node-RED |
|---|---|---|---|---|---|
| Direct word/bit read/write | yes: read_devices / write_devices |
yes: ReadWordsRawAsync / WriteWordsAsync / bit variants |
yes: readWords / writeWords / bit variants |
yes: read_words_raw / write_words / bit variants |
yes: readDevices / writeDevices |
| Dword / float32 helpers | yes | yes | yes | yes | gap: use word/dword random and typed high-level helpers |
| Extended direct word/bit read/write | yes: read_devices_ext / write_devices_ext |
yes: ReadWordsExtendedAsync / WriteWordsExtendedAsync / bit variants |
yes: module-buffer and link-direct helpers | yes: read_words_extended / write_words_extended / bit variants |
gap: low-level surface currently exposes extended random only |
| Random read | yes: read_random |
yes: ReadRandomAsync |
yes: readRandom |
yes: read_random |
yes: readRandom |
| Extended random read | yes: read_random_ext |
yes: ReadRandomExtAsync |
yes: readRandomExt |
yes: read_random_ext |
yes: readRandomExt |
| Random word/dword write | yes: write_random_words |
yes: WriteRandomWordsAsync |
yes: writeRandomWords |
yes: write_random_words |
yes: writeRandomWords |
| Extended random word/dword write | yes: write_random_words_ext |
yes: WriteRandomWordsExtAsync |
yes: writeRandomWordsExt |
yes: write_random_words_ext |
yes: writeRandomWordsExt |
| Random bit write | yes: write_random_bits |
yes: WriteRandomBitsAsync |
yes: writeRandomBits |
yes: write_random_bits |
yes: writeRandomBits |
| Extended random bit write | yes: write_random_bits_ext |
yes: WriteRandomBitsExtAsync |
yes: writeRandomBitsExt |
yes: write_random_bits_ext |
yes: writeRandomBitsExt |
| Block read/write | yes: read_block / write_block |
yes: ReadBlockAsync / WriteBlockAsync |
yes: readBlock / writeBlock |
yes: read_block / write_block |
yes: readBlock / writeBlock |
| Type name | yes: read_type_name |
yes: ReadTypeNameAsync |
yes: readTypeName |
yes: read_type_name |
yes: readTypeName |
| Monitor register/cycle | yes | yes | yes | gap: typed monitor API is backlog | gap: low-level client has no monitor-register API yet |
| Memory read/write words | yes | yes | gap: minimal client does not expose memory commands | yes | yes |
| Extend-unit read/write words | yes | yes | gap: minimal client uses extended-device helpers instead | yes | yes |
| CPU-buffer convenience helpers | yes | yes | gap: use module-buffer helpers | gap: use extended-device HG access where supported |
gap: use lower-level primitives where available |
| Label array read/write | yes | yes | yes | yes | yes |
| Label random read/write | yes | yes | yes | yes | yes |
| Remote CPU control | yes | yes | yes | yes | yes |
| Remote password lock/unlock | yes | yes | yes | yes | yes |
Rust and Node-RED both expose the extended random APIs added in the 2026-07-06 parity pass. Node-RED editor nodes do not need to surface every low-level JavaScript API; this table tracks the JavaScript client surface used by the nodes.
Out-of-Scope Node Functions
SLMP node-function commands in the 0x0E3x family, including NodeSearch,
IPAddressSet, ParameterGet/Set, StatusRead, and CommunicationSettingGet, are
outside the maintained library surfaces. These libraries target MELSEC CPU
SLMP server communication for PLC data access and setup-compatible operation;
they do not implement a node-function server-management surface. NodeSearch
and IPAddressSet are also send-prohibited by project policy because they can
discover or alter network identity outside normal PLC data access workflows.
See the SLMP Troubleshooting & Codes guide for the related node-function end-code category.