Rust 跨平台客户端开发在字节跳动的实践

所属专题:移动新生态

所属领域: 移动

嘉宾 : 王枞 | 字节跳动跨平台团队负责人

会议室 : 第二会议厅B

讲师介绍

专题演讲嘉宾:王枞

字节跳动 跨平台团队负责人

王枞,字节跳动效率工程团队工程师。 目前聚焦跨平台高性能客户端核心组件的研发,以及团队 Rust 相关基础设施建设;关注弱网通信、存储、网络并发、并行计算、加密以及安全等领域;Rust 社区贡献者。

议题介绍

地点:第二会议厅B
所属专题:移动新生态
所属领域:
移动

演讲:Rust 跨平台客户端开发在字节跳动的实践

飞书客户端非 UI 部分由 Rust 跨平台实现,目前包括移动端和桌面端共 5 个平台:

  • 跨平台方案, 选择和考虑
  1. 跨平台方案越来越体现出优势,但因一些困难,没有得到最广泛的使用;
  2. Rust 方案如何克服这些困难;
  3. 从用户以及开发者视角,分析语言特性解决的实际问题:高性能,极小运行时,内存安全,线程安全等;
  4. 我们的选型,原因和考虑,包括跨平台实现的范围。
  • Rust 跨平台方案的实现
  1. 整体架构介绍:输入 & 输出,状态流转,同步异步调用方式,一些问题的处理,比如如何保证客户端调用不会阻塞,如何保证隔离影响;
  2. 异步模型介绍:线程池和事件循环结合,同时支持计算密集型任务和 IO 多路复用,如何处理可能的线程阻塞,线程 panic 问题;
  3. FFI 介绍:我们支持的几个跨语言调用方案,以及对比。
  • Rust 跨平台实现的一些基础能力介绍
  1. 网络方面,网络模型,做过的网络优化,如 TLS1.3、QUIC、HTTPDNS、诊断、复合连接等;
  2. 存储方面,数据库周边的基础设施;
  3. 安全方面,如何更大限度保证存储,传输的安全性。
  4. 测试方面;
  5. 日志和 Metrics。
  • Rust 生态发展迅速, 并且 Rust 可以高效利用 C/C++ 生态,举例
  1. Rust 生态本身,全平台 TLS1.3 支持(rustls);
  2. C/C++ 生态,QUIC 支持(cronet);
  3. 年轻,但发展迅速,列举我们遇到过&修复过的问题。
  • Rust 跨平台方案周边
  1. 接入方式,支持渐进式接入,减小接入和尝试的门槛。
  2. Profiling, Debugging相关。

交通指南

© 2020 Baidu - GS(2019)5218号 - 甲测资字1100930 - 京ICP证030173号 - Data © 长地万方
想要批量报名或更多优惠?
立即联系票务小姐姐 Ring
或致电:+8613269076283