Hacker News인프라 · 데브옵스

Firebase 에뮬레이터를 Rust로 다시 구현한 Firenook 공개

원제 Show HN: Firenook – Firebase emulators in Rust: 40× faster writes, 10× less RAM

111 포인트댓글 16
Key Point

Firenook으로 전환하면 개발 중 에뮬레이터 속도가 40배 빨라지고 메모리 사용량이 10분의 1로 줄어들어 로컬 개발 경험과 CI/CD 성능이 크게 개선된다.

핵심 요약

  • Firebase Local Emulator Suite의 드롭인 대체 도구인 Firenook(버전 0.2.1)을 공개했으며, 쓰기 성능은 40배, 메모리는 10배 더 효율적이다.
  • firebase.json, SDK, 포트를 그대로 유지한 채 명령어 한 줄만 바꾸면 되고, Java 설치가 필요 없으며 데이터는 재시작 후에도 보존된다.
  • Firestore 중앙값 쓰기가 208.2ms에서 5.1ms로, 메모리 피크가 22.57GiB에서 2.11GiB로, 재시작 시간이 30.8초에서 0.59초로 단축된다.
  • 공식 Firebase 형식으로 데이터를 가져오고 내보낼 수 있으며, Firestore, Authentication, Cloud Storage, Cloud Functions, Extensions, Pub/Sub, Cloud Tasks, Eventarc 등 8개 에뮬레이터를 지원한다.
  • Security Rules, 실시간 리스너, 명명된 데이터베이스, Native 및 웹 SDK가 Google 서비스와 동일하게 동작하며, 공식 임포트/내보내기 형식과 호환된다.
  • Auth 에뮬레이터는 비밀번호, 이메일 링크, 휴대폰, MFA, 패스키, 테넌트, 차단 함수 등 공식 Auth의 모든 작업을 지원한다.
  • Cloud Functions는 Firestore, Storage, Auth, Pub/Sub, Eventarc, 스케줄, 작업 큐 등 모든 트리거를 지원하며 저장 시 코드가 자동으로 다시 로드된다.
  • 실제 애플리케이션 2시간 트래픽을 대상으로 한 벤치마크에서 쿼리 중 25개 중 25개에서 더 빠르거나 동일한 성능을 기록했으며, 리스너 업데이트는 19배, orderBy+limit은 8배 더 빠르다.
  • --keep-data 옵션으로 에뮬레이터 중단/시작 시 데이터가 자동 보존되어, 중단 시 0.04~0.30초, 시작 시 0.54~0.57초에 완료된다.
  • emulators:exec 명령으로 테스트를 실행하면 Node 24만 필요하고 Java 설정이 필요 없으며, 공식 에뮬레이터와 동일한 로그를 CI에 제공한다.
  • Functions, Pub/Sub, Cloud Tasks, Eventarc 페이지가 없는 공식 Emulator UI와 달리, Firenook 콘솔은 모든 서비스를 실시간으로 커버하며 라이트/다크 모드와 오프라인 지원한다.
  • firenook mcp 명령으로 Claude Code, Cursor, VS Code 같은 코딩 에이전트에 54개 도구를 제공하며, 보안 규칙 평가, 함수 호출 오류 확인, 데이터 작업 등을 지원한다.
  • firebase-tools는 배포용으로 유지해야 하며, Firenook은 오픈소스(Apache License 2.0)이고 Google과 무관하며, Node 22/24/26 (macOS, Linux glibc 2.28+, Windows x64)에서 실행된다.
  • Realtime Database, Hosting, App Hosting, Data Connect는 미지원이며, 0.2.1은 공개 사용을 위한 첫 번째 릴리스로 모든 릴리스가 공식 에뮬레이터에 대한 적합성 검증을 통과한다.
AI 요약 안내

AI가 한국어로 정리한 내용입니다. 정확한 정보는 원문을 확인해 주세요.

요약 원칙 ↗