This should still be possible. External developers have e.g. implemented the rmw interface using OPC UA. Sadly there is no additional documentation on how to write a custom rmw implementation. The “best” way is to read through the API docs of the interface as well as the existing implementations.