12 puntos por xguru 2020-06-17 | Aún no hay comentarios. | Compartir por WhatsApp

Reseña de Tonari sobre la implementación de videoconferencias en “tiempo real”

→ La latencia de Zoom y WebRTC es de 315-500 ms

Para alcanzar una latencia de 130 ms, que sí se siente en tiempo real, decidieron que en vez de tocar las 750 mil líneas del stack de WebRTC, era mejor diseñar todo el stack desde cero y reimplementarlo para ajustarlo al hardware deseado

→ Eligieron Rust por seguridad, rendimiento y mantenibilidad

Crates que usaron principalmente

→ Mejores que la biblioteca estándar: crossbeam, parking_lot, bytes, socket2

→ Para logs y CLI más elegantes: fern, structopt

→ Ayudantes para cargo: cargo-release, cargo-udeps, cargo tree, cargo-geiger, cargo-flamegraph

Aspectos difíciles de Rust

  • Los tiempos de compilación son largos

  • La cobertura de bibliotecas es insuficiente

  • Exige escribir código correcto y claro desde el principio

  • El sistema de inferencia de tipos es tan potente que a veces se siente como usar un lenguaje dinámico

  • El lenguaje sigue evolucionando

Resultados de haber elegido Rust

  • No experimentaron tiempo de inactividad relacionado con el software

  • Gracias al uso eficiente de recursos, pudieron escribir con facilidad código de alto rendimiento

  • El uso de CPU y memoria fue totalmente predecible y consistente

  • Garantiza latencia y tasa de cuadros consistentes

  • La experiencia de mantener la base de código también fue excelente

  • Al final construyeron un producto mantenible y confiable, con gran desempeño en tasa de cuadros, latencia y eficiencia de recursos

→ Habría sido difícil lograrlo sin Rust

Aún no hay comentarios.

Aún no hay comentarios.