Firenook - Rust로 만든 Firebase 에뮬레이터, 쓰기 40배 빠르고 RAM 사용량은 10분의 1

3 days ago 15

Firenook은 기존 firebase.json, SDK, 포트와 실행 옵션을 유지하면서 Firebase Local Emulator Suite를 대체하는 도구로, Java 설치 없이 사용 가능함 실제 운영 앱의 트래픽을 각각 2시간 실행한 자체 벤치마크에서 쓰기 중앙값은 공식 에뮬레이터의 208.2ms 대비 5.1ms, 최대 메모리는 22.57GiB 대비 2.11GiB였음 Firestore, Authentication 등 8개 서비스를 지원하지만 Realtime Database, Hosting, App Hosting, Data Connect는 에뮬레이션하지 않음 --keep-data 로 Firestore, Auth, Storage 데이터를 재시작 후에도 유지하며, 매번 내보내기와 가져오기를 수행하지 않고 약 0.5초에 다시 시작할 수 있음 모든 지원 서비스를 확인하는 로컬 콘솔과 코딩 에이전트용 MCP 도구 54개를 제공하는 무료 오픈소스 프로젝트임 기존 Firebase 프로젝트와의 호환성 실행 명령의 firebase를 firenook으로 바꾸는 방식으로 전환하며, 기존 플래그, 포트, 내보내기 형식을 유지함 firebase.json과 .firebaserc를 Firebase CLI와 같은 방식으로 읽음 Security Rules, 인덱스, Functions 코드와 설정을 그대로 사용함 connectFirestoreEmulator, FIRESTORE_EMULATOR_HOST 등 기존 SDK 연결 방식을 변경하지 않아도 됨 공식 데이터 형식의 가져오기와 내보내기를 양방향으로 지원하므로 공식 에뮬레이터로 돌아갈 수 있음 Firenook 실행 중 데이터를 내보낸 뒤 공식 에뮬레이터에서 --import로 읽으면 됨 firebase-tools는 계속 필요함 Firenook은 에뮬레이터만 대체하며 배포나 로그인 명령은 제공하지 않음 지원하는 8개 서비스와 제외 범위 Firestore 는 네이티브/웹 SDK, 실시간 리스너, Security Rules, 이름이 지정된 데이터베이스, 공식 가져오기/내보내기를 지원함 Authentication 은 비밀번호, 이메일 링크, 전화, MFA, 패스키, 테넌트, 차단 함수 등 공식 Auth 에뮬레이터의 모든 작업을 지원함 Cloud Storage 는 Firebase 및 Cloud Storage API를 지원하며, firestore.get()을 포함한 Security Rules를 네이티브...

Read Entire Article




피플앤툴즈 네트워크
🛍 샵