Show HN: Firenook – Firebase emulators in Rust: 40× faster writes, 10× less RAM
Hi HN, we have been developing with Firebase for a long time, and the only way Firebase developers can build apps without directly costing them is using the official Firebase Emulator Suite. However, the issue with this suite is, it's dependent and running on Java with a old Console UI (not updated in years), that was not built to support tons and millions of data and has pretty bad developer experience. For a long time, we were hitting Out of Memory on even high specs laptop while developing and the worst part is while this happens all the persists data keep getting lost. We were honestly frustrated with this, and thought what if we built the Firebase Emulator Suite the right way, as it always should have been. Introducing Firenook, a faster drop-in replacement for Firebase Emulator Suite for Firebase developers. It's 40x faster writes and needs 10x less RAM to run it. We took the right approach of first building it Rust as a single engine, so that there will be no Java dependencies and built from scratch a new Console UI using modern web stacks. The result is, now we were able to run 2 millions datas loaded to Firenook with only taking around 2GB ram compared to 22GB of the official suite. Things are way faster and rebuilt Console UI gives best developer experience from logging Firebase Functions, to editing Firestore documents in JSON and many more. We developed this throughly for around 2 months now and ran this internally for a month before we decided it's time to release it to public so that other devs can make use of Firenook and also contribute it to make it better. Firenook is still new and I'm sure it misses things. So please try it our on your project and let us if there are any issues. Thank you.
Discussion Highlights (6 comments)
willdub
this is awesome, great work. any plans to target replacing the cloud production services?
corytheboyd
Awesome, not surprised to hear that Google still neglects to improve this experience, but you called out exactly why: > [...] the only way Firebase developers can build apps without directly costing them is using the official Firebase Emulator Suite We had started on the management UI portion of this at my old job out of similar frustrations. Felt awful seeing what should be a small/medium sized development-only application spew forth Java flotsam.
jamest
(Firebase founder) This is very cool! Great work!
joshdavham
Looks nice! Somewhat off topic question though: if you guys are such skilled developers to be building something as involved as this, why not just use something other than Firebase? I used Firebase mainly as a crutch when I was first getting into web dev, but feel that I’ve sorta outgrown it. Do you feel Firebase still serves developers like you well or are you developing this moreso for people like my old self? Again, nice work!
silverlight
This is really neat! I've been working on an open-source version of the Firebase Realtime Database as well that might be of interest[1]. Also written in Rust! Might be a good basis for building out the Realtime Database part of Firenook if you have any interest in supporting that as well. [1] https://github.com/lark-sh/lark
_minjun_choi
This is very cool!