Firenook es un proyecto independiente de código abierto diseñado como un reemplazo directo para la suite oficial Firebase Local Emulator Suite. Desarrollado en Rust, su objetivo es proporcionar un entorno de desarrollo local más eficiente para los desarrolladores que utilizan los servicios de Firebase. Soporta ocho emuladores, incluyendo Firestore, Authentication, Cloud Storage, Cloud Functions, Pub/Sub, Cloud Tasks y Eventarc, manteniendo la compatibilidad con la configuración estándar de `firebase.json` y los SDK de Firebase existentes. Los desarrolladores pueden cambiar a Firenook modificando una sola palabra en su script de inicio, ya que utiliza los mismos puertos y variables de entorno que la suite oficial.

Esta imagen ilustra la interfaz de Vista General de la consola donde los desarrolladores pueden monitorear el estado de los diversos servicios emulados.

Esta visualización demuestra la interfaz del emulador de Firestore, uno de los ocho servicios compatibles con Firenook.

Esta imagen muestra la interfaz del emulador de Authentication, que forma parte de la suite de servicios que Firenook ofrece para el desarrollo local.
La principal ventaja técnica de Firenook reside en su rendimiento y eficiencia de recursos. Según las pruebas de rendimiento del proyecto, Firenook logra velocidades de escritura medianas 40 veces más rápidas (5.1 ms en comparación con 208.2 ms) y utiliza 10 veces menos memoria en su punto máximo (2.11 GiB en comparación con 22.57 GiB) que el emulador oficial. Estas mejoras se atribuyen a su implementación nativa y a una estrategia de manejo de datos diferente: mientras que el emulador oficial mantiene todos los datos en el heap de Java, Firenook mantiene los datos en el disco y almacena en caché lo que lee. Esta arquitectura también permite reinicios significativamente más rápidos; Firenook puede reiniciarse con datos guardados en aproximadamente 0.59 segundos, mientras que el emulador oficial requiere un ciclo de exportación e importación que puede tardar más de 30 segundos.
A pesar de estas mejoras de rendimiento, Firenook tiene límites funcionales específicos. No emula Realtime Database, Hosting, App Hosting o Data Connect; aunque un archivo `firebase.json` que configure estos servicios aún se iniciará, Firenook emitirá una advertencia. Además, aunque es compatible con los formatos oficiales de importación y exportación, es un proyecto independiente y no está afiliado con Google. Debido a que los datos de rendimiento son proporcionados directamente por el proyecto Firenook, estas pruebas representan las pruebas internas del desarrollador en lugar de una verificación independiente de terceros. Para despliegues en producción, se espera que los desarrolladores sigan utilizando la CLI oficial `firebase-tools`, ya que Firenook está destinado estrictamente a la emulación local y no incluye comandos de despliegue.