Base128 编码流式传递二进制对象

同样有非 ASCII 字符,尺寸又不如 Binary strings

用例:
  • WebView 和 WebPage 传递对象
  • WebExtension 和 WebPage 传递对象

性能:
  • 相比直接传递二进制数据会有多余的编码,解码,内存复制操作
  • 编码时字符串的拼接
  • 用 Base128 编码,数据膨胀 8/7 = 1.143 倍

协议:
chunk:
数据小于预期长度时视为结束,等于时在新 chunk 中结束
// 传 56K 数据大约 64K 字符串数据
// 无重传机制,不校验

实现:
  • Web 发送,接收(rust -> wasm)
  • Flutter 发送,接收