Qué construimos con él

Rust es nuestra elección para las partes de un sistema donde equivocarse sale caro e ir lento es inaceptable. Procesamiento de documentos y gráficos, parsers, herramientas de línea de comandos y servicios cuyo presupuesto de latencia se mide en milisegundos y no en cientos de ellos.

Lo que sacamos de él es previsibilidad. Sin recolector de basura no hay pausas que no podamos explicar; el modelo de ownership hace que toda una clase de bug de concurrencia nunca llegue a revisión; y un binario de Rust puede dejarse caer en un servidor o en un contenedor sin ningún runtime que instalar al lado.

Dónde lo hemos usado

dxpdf es nuestro mayor proyecto en Rust y es de código abierto: un conversor independiente de DOCX a PDF construido sobre Skia que no necesita ni Microsoft Office ni una API en la nube. Convierte un documento de tres páginas con tablas e imágenes en unos 113 ms usando 19 MB de memoria pico, lo bastante rápido como para ejecutarse dentro de un manejador de peticiones web.

Escribimos sobre cómo funciona el pipeline de renderizado en renderizar PDF con Skia y Rust.

Cuándo lo recomendamos

Rust se gana su sitio en las rutas calientes, en servicios de larga vida donde el comportamiento de memoria importa y en herramientas que distribuyes como binario a otras personas.

No se gana su sitio en el CRUD corriente. El desarrollo es más lento, la bolsa de contratación es menor y un endpoint de API típico se pasa el tiempo esperando a una base de datos y no a la CPU: Go o Python llegarán antes y costarán menos de mantener. Usamos Rust donde lo dice el perfilado, no por defecto.