And I call it.... MongoLiteDB
I'm probably infringing on some trademarks and all sorts of proprietary things, but that's the name I gave it over at GitHub. If that's a problem, then I expect the affected parties will contact me and I will be accommodating.
What is it? If the name isn't clear, it combines some of the strengths of the two solutions while conveniently ignoring requirements I don't care about, namely performance. It provides a very simple to set up, simple to use database.
SQLite is a great lightweight database solution. It uses a single file to store and retrieve all entries and therefore does not require an external service. It does however require a schema, which can be tedious to maintain and update in a rapidly changing project.
MongoDB is a great schema free database. Without having to manage a schema, I can hack away to my heart's content. It does however require an external service. It isn't what I would call a lightweight solution.
In SQLite, a great deal of performance gains result from the structured nature of the data. In MongoDB, the external service works all kinds of magic in order to provide a performant schema free solution. Without either of these, performance probably sucks. (I haven't bothered to benchmark it.)
I decided I sometimes just didn't care about performance. In my simple applications, I don't expect to have significant traffic. I don't even think anyone but me will use the service. I want a solution that is as frictionless as possible during development and prototyping. Performance is my last concern. And so MongoLiteDB was born.
I probably spent more time building MongoLiteDB than it would have taken me to maintain my SQLite schema. I mostly built MongoLiteDB because it was something new and exciting. Hopefully myself and other can get some use out of it.
Anyway, read more about it over on GitHub. It's pretty raw still. The code needs comments. The documentation is nonexistent. It's not even packaged as a Gem yet. If it's interesting to you, please let me know. Leave comments on this blog. Fork the project. File Issues. I think this would be a fun project to expand upon and interest from the community will be a great motivator to do so.comments powered by Disqus