Figmaのパフォーマンス改善にRustが一役買った話

Figmaで使われている様子

ソースはこちら

www.figma.com

 

  • リアルタイム編集機能において、パフォーマンス改善のためにサーバーサイドをTypeScript => Rustへ書き直した
  • 曰く、

Rust is similar to C++ in performance and low-level ability but has a type system which automatically prevents whole classes of nasty bugs that are common in C++ programs. 

  C++よりいいぜ!ということ

  • RustにはGCがなく、メモリの制御を細かく行うことができる。そこが今回のユースケースにマッチした。
  • LLVMの最適化も可能、かつパフォーマンス最適化を念頭において設計されている言語である点もよかった
  • ただし、ライフタイムの概念/把握が大変、かつエラーのデバッグが困難だった。そこはデメリットと捉えている様子。

 

 

ちなみにそのほかにもDropboxやCloudflare、VOYAGE GROUPなどでプロダクションレベルで使われている。