In our 0.4.0-beta.2 SDK release we’ve made improvements to our Native SDKs focused on usability. We hope this makes it even easier to start experimenting with the Rainway SDK.

Native Ergonomics

We’ve made significant changes to the design of our Native SDKs that aim to improve developer experience.

  • Event-based - We’ve moved away from global callbacks to per-object events.
  • Async - We now represent all async operations using Promise in Node.js, and Task in .NET.
  • Documented - We’ve improved our object and method names, updated our in-editor documentation, and standardized terminology across our SDKs.

For samples using the new API, take a look at our example repositories:

We’ve also renamed our Node.js SDK to @rainway/native, to align with the naming of our other JS packages.

For more information about the API changes in this update, see our latest documentation.

Web Metrics

We’ve added support for capturing metrics during a stream, which captures transit throughput, negotiated codecs, and state transitions for the lifetime of the stream.

When requesting or accepting a stream, specify {metrics: true} alongside your other options, to enable metric collection. Once a stream has begun, call getReport() on it at any time to obtain the latest metric report.

We may request these reports from customers going forward to help us diagnose stream performance issues. We also wanted to make this data easily available for SDK consumers to analyze themselves.

Bugfixes and Improvements

  • [Native SDKs] Fixed support for multiple process ids when using App Isolation.
  • [Web SDK] Fixed cursor support in multi-peer streams.
  • [Node.js SDK] Fixed processId marshalling issue that was leading to invalid App Isolated streams.