once-campfire-rust
Port de ONCE Campfire desde Rails a Rust que mantiene compatibilidad pixel-perfect con la app original. Ofrece un binario único, imágenes ligeras y mejora drástica en rendimiento (19-44× más rápido) para chat en tiempo real y alta concurrencia.
Ficha actualizada 28 sept 2026, 10:46 · upstream 28 sept 2026, 10:40 · release v0.1.0
Qué es once-campfire-rust
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
once-campfire-rust es una implementación en Rust del software de comunicación ONCE Campfire, originalmente escrito en Rails. El objetivo principal fue lograr una compatibilidad total con la aplicación original: mismo frontend (CSS, Stimulus, Turbo), misma base de datos SQLite y almacenamiento, sin cambiar el diseño visual ni los protocolos. Tras alcanzar esta paridad, el código diverge para aprovechar las ventajas de Rust, resultando en un binario único que reemplaza Ruby, Puma, Redis y Thruster.
- Reemplazo directo de una instancia de Campfire Rails existente sin migrar datos ni frontend.
- Despliegue de aplicaciones de chat en tiempo real con alta concurrencia (hasta 100.000 clientes).
- Servicios que requieren baja latencia y alto throughput en la entrega de mensajes.
- Entornos de producción donde el consumo de memoria y tamaño de imagen son críticos.
- Rendimiento: Entre 19× y 44× más rápido que la versión Rails en páginas, posts y entrega en tiempo real.
- Eficiencia de recursos: Reduce la memoria idle en un 6.5× y el tamaño de imagen comprimida en un 5.4×.
- Escalabilidad: Soporta hasta 100.000 clientes conectados simultáneamente con bajo consumo de memoria.
- Compatibilidad: Mantiene paridad pixel-perfect con la aplicación Rails original mediante pruebas automatizadas.
- Requiere instalación manual de dependencias externas como libvips y ffmpeg para procesamiento de medios.
- No incluye archivo docker-compose, obligando a gestionar el entorno manualmente o mediante scripts personalizados.
- El frontend sigue dependiendo de activos JavaScript vendidos (Stimulus, Turbo) sin migración a Rust.
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Despliegue en contenedor Docker con un único binario 'campfire'. Requiere libvips y ffmpeg instalados en el host o imagen. Mapear puerto 80. La aplicación utiliza SQLite para persistencia de datos y Redis para servicios auxiliares. Se recomienda usar LTO y jemalloc para optimizar rendimiento. El frontend se sirve sin cambios, manteniendo la compatibilidad con la versión Rails original.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.