# 3K, 60fps, 130ms 화상회의 구현을 위해 Rust를 선택한 이유

> Clean Markdown view of GeekNews topic #2283. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=2283](https://news.hada.io/topic?id=2283)
- GeekNews Markdown: [https://news.hada.io/topic/2283.md](https://news.hada.io/topic/2283.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2020-06-17T10:05:03+09:00
- Updated: 2020-06-17T10:05:03+09:00
- Original source: [blog.tonari.no](https://blog.tonari.no/why-we-love-rust)
- Points: 12
- Comments: 0

## Topic Body

Tonari의 "실시간" 화상회의 구현 후기

ㅤ→ Zoom, WebRTC의 지연시간은 315-500ms

실시간 수준인 130ms 지연시간을 위해 WebRTC 스택 75만 라인을 건드리는 것보다, 전체 스택을 처음부터 원하는 하드웨어에 맞게 설계하고 다시 구현하기로 함

ㅤ→ 보안,성능,유지보수를 위해 Rust를 선택

주로 사용한 Crate 들

ㅤ→ 표준 라이브러리 보다 좋은 것들 : crossbeam, parking_lot, bytes, socket2

ㅤ→ 로그와 CLI를 예쁘게 : fern, structopt

ㅤ→ cargo 도우미 : cargo-release, cargo-udeps, cargo tree, cargo-geiger, cargo-flamegraph

Rust의 힘든 점들

- 컴파일 시간이 김

- 라이브러리 커버리지가 부족

- 처음부터 정확하고 명확한 코드작성을 요구

- 타입 추론기가 너무 강력해서 동적 타입 언어를 쓰는 것처럼 느낄때가 있음

- 언어가 계속 발전중

Rust를 선택한 것의 결과

- 소프트웨어 관련한 다운타임을 경험하지 않음

- 효율적인 리소스 사용으로 성능좋은 코드를 쉽게 작성할수 있었음

- CPU 와 메모리 사용은 모두 예측가능하고 일관적

- 일관된 지연시간과 프레임속도를 보장

- 코드베이스 유지경험도 훌륭

- 최종적으로 유지 가능한 신뢰할수 있는 제품을 만들었으며, 프레임속도, 대기시간 및 리소스 효율성에서 빠른 성능을 발휘했음

ㅤ→ Rust 없이는 힘들었을 것

## Comments



_No public comments on this page._
