Compatibility

This matrix is based on the public implementation repositories plus maintainer interoperability runs. For the current result counts, see VALIDATION.md.

Statuses:

  • Tested: directly covered by the current validation snapshot.
  • Supported: documented or directly represented in source/tests, but not necessarily covered by the current cross-runtime snapshot.
  • Partial: implemented or partly tested, with known coverage or host-environment limits.
  • Planned: described as future work.
  • Not applicable: the feature does not apply to that implementation type.
  • Implementation-specific: the concept exists but behavior depends on host/framework usage.
  • Unknown: not enough evidence to make a public claim.

Validation Highlights

Last updated: 2026-06-13.

Area Result
Cross-runtime HTTP interoperability matrix 36/36 client/server combinations passed; fail=0 gap=0
Express Safe Mode baseline pass=13 fail=0
Node core HTTP Safe Mode pass=16 fail=0 gap=0; unit tests 8 passed
.NET interoperability .NET client to all matrix servers passed; all matrix clients to .NET server passed; unit tests 60 passed
Java interoperability Java client to all matrix servers passed; all matrix clients to Java server passed; full Gradle test suite passed
Android Java runtime rpc-android instrumentation tests on Samsung SM-T733, Android 14/API 34: 4 passed over adb reverse; 4 passed over direct WiFi/LAN
PHP interoperability PHP client to all matrix servers passed; all matrix clients to PHP server passed
Python interoperability Python client to all matrix servers passed; all matrix clients to Python server passed; unit tests 12 passed
Arduino ESP32 physical runtime Node client to ESP32 WiFi server pass=21 fail=0 gap=0; ESP32 board-to-board heap run captured
Arduino ESP8266 physical runtime ESP8266 WiFi client to Express Safe endpoint pass=21 fail=0 gap=0; ESP8266 WiFi client to ESP32 server pass=21 fail=0 gap=0
Node-RED integration Docker runtime probe pass=27 fail=0; public Flow Library scorecard pass=12 warn=0 fail=0

HTTP Interoperability Matrix

The matrix below uses the shared Safe Mode HTTP contract and was run on 2026-06-13. Servers: rpc-express-toolkit, rpc-node-toolkit, rpc-dotnet-toolkit, rpc-java-toolkit, rpc-php-toolkit, and rpc-python-toolkit.

Client Express Node .NET Java PHP Python
Raw HTTP probe PASS (14/0) PASS (14/0) PASS (14/0) PASS (14/0) PASS (14/0) PASS (14/0)
JS client PASS (9/0) PASS (9/0) PASS (9/0) PASS (9/0) PASS (9/0) PASS (9/0)
.NET client PASS (17/0) PASS (17/0) PASS (17/0) PASS (17/0) PASS (17/0) PASS (17/0)
Java client PASS (17/0) PASS (17/0) PASS (17/0) PASS (17/0) PASS (17/0) PASS (17/0)
PHP client PASS (14/0) PASS (14/0) PASS (14/0) PASS (14/0) PASS (14/0) PASS (14/0)
Python client PASS (14/0) PASS (14/0) PASS (14/0) PASS (14/0) PASS (14/0) PASS (14/0)

Protocol And Payload Features

Feature JS Client Node Express Python PHP .NET Java Arduino Node-RED
JSON-RPC 2.0 envelope Supported Tested Tested Tested Tested Tested Tested Tested Tested
Object params Supported Tested Tested Tested Tested Tested Tested Tested Tested
Array params Supported Tested Tested Tested Tested Tested Tested Tested Tested
Batch requests Supported Tested Tested Tested Tested Tested Tested Supported Tested
Notifications Supported Tested Tested Tested Tested Tested Tested Tested Tested
Error responses Supported Tested Tested Tested Tested Tested Tested Tested Tested
error.data Supported Tested Tested Tested Tested Tested Tested Tested Tested

Safe Mode And Introspection

Feature JS Client Node Express Python PHP .NET Java Arduino Node-RED
Safe Mode Supported Tested Tested Tested Tested Tested Tested Tested on ESP32/ESP8266 WiFi Tested
Safe Mode strict mode Supported Tested Tested Tested Tested Tested Partial Tested on ESP32/ESP8266 WiFi Tested
Introspection Not applicable Tested Tested Tested Tested Tested Tested Tested Tested
Schema metadata Not applicable Tested Tested Tested Tested Tested Partial Supported Tested
Runtime schema validation Not applicable Tested Tested Tested Tested Tested Unknown Planned Tested

Transports And Integration

Feature JS Client Node Express Python PHP .NET Java Arduino Node-RED
HTTP transport Supported Tested Tested Tested Implementation-specific Tested Tested Tested on ESP32/ESP8266 WiFi Tested
Serial transport Not applicable Not applicable Not applicable Not applicable Not applicable Not applicable Not applicable Supported Not applicable
Authentication middleware/hooks Not applicable Implementation-specific Supported Implementation-specific Supported Supported Supported Not applicable Supported
Method whitelist Not applicable Unknown Supported Unknown Supported Unknown Unknown Unknown Unknown
Node-RED integration Client-compatible Client-compatible Client-compatible Client-compatible Client-compatible Client-compatible Client-compatible Client-compatible Tested
Embedded support Client-compatible Client-compatible Client-compatible Client-compatible Client-compatible Client-compatible Client-compatible Tested on ESP32/ESP8266 WiFi; ESP8266 build-tested Client-compatible

Notes

  • rpc-arduino-toolkit has captured physical WiFi runtime evidence on ESP32 and ESP8266. The current snapshot includes Node client to ESP32 server, ESP8266 client to Express, and ESP8266 client to ESP32 server runs.
  • rpc-python-toolkit has client/server Safe Mode interoperability evidence and unit-test coverage in the current validation snapshot.
  • rpc-java-toolkit includes Android client runtime evidence through physical rpc-android instrumentation tests on Android 14/API 34, including both adb reverse and direct WiFi/LAN endpoint runs.
  • rpc-toolkit-js-client is a client library, so server-side features such as introspection hosting and runtime validation are not applicable.
  • node-red-contrib-rpc-toolkit integrates RPC endpoints into Node-RED flows and delegates core HTTP behavior through the Node-RED runtime and rpc-express-toolkit. Docker runtime probe and public Flow Library scorecard are green.
  • Java strict HTTP Safe Mode header handling is a wrapper-level concern in the tested server because the Java core endpoint is transport agnostic.