mediasoup 3.13.0 has been released. It replaces JSON based messages with FlatBuffers in the internal communication between Node/Rust and Worker. And it also comes with new features! (see below).
- Switch from JSON based messages to
JSON vs FlatBuffers overview:
- JSON parsing is CPU intensive.
- JSON is not type safe.
- flatbuffers does not parse the buffer. Reading a message takes 0ms.
- flatbuffers is type safe since code (C++, Typescript, Rust, etc) is autogenerated out of the schema definitions.
Extras that come along with the migration to FlatBuffers:
- There is now a single Channel for worker communication (previously there were 2, Channel and PayloadChannel).
- Each message sent Node/Rust → Worker requires a single
write()call in Channel (previously 2 calls per message were needed in Channel and 4 in PayloadChannel).
- Each message sent Worker → Node/Rust previously executed two extra calls to
memcpy()that do not happen now.
ListenInfoin all transports and send/recv buffer size options (PR #1084).
- Add optional
- Add pause/resume API in
- DataChannel subchannels feature (PR #1152).
Worker: Make DTLS fragment stay within MTU size range (PR #1156).
mediasoup-client 3.7.0 has been released. It doesn’t come with real changes other than some ones in TypeScript types to make it perfectly compatible with mediasoup 3.13.0.