Inspiration
This was the final semester project I made in college. Most of my classmates were making Web Applications or AI Applications using third party databases. I was also initially going to make a web application using Mongo DB but then I wondered if I could I also create a database by myself. My favorite language is javascript and I had this idea of a serverless database. So I decided that I will make my own database using Node Js as the final year project.
What it does
It is a serverless NoSql database. It is a great candidate for an application database or a key value datastore. It is incredibly fast when data is logically distributed into multiple documents. Lazlodb can also be hosted on a server with a client facing api. Its strengths are portability and ease of use.
How I built it
I built it using Node Js. These are some of the features of lazlodb.
- Databases do not require an isolated environment. They can exist anywhere, even in your code repository or cloud folder.
- Data is stored in .laz files in MessagePack encoded form. As MessagePack is smaller than JSON, it takes less space & hence the files are compact.
- Each .laz file represents a document (or a table in sql).
- All documents exist in a database, which is essentially a folder being tracked by lazlo.
- Very easy to learn and use.
- Multiple commands for the same operation (Eg. newdoc & create doc both will create a new document).
- Inbuilt caching system caches recently queried documents leading to faster responses.
- Extensive use of terminal styling for the cli client (Eg. Success messages are displayed in green & errors are displayed in red).
- Command auto-completion available for the cli client (Eg. Type create & press tab. You will get recommendations for all commands starting with create).
- Powerful inbuilt logger which logs all the transactions.
Challenges I ran into
- At that time this was my biggest solo coding project.
- I was still learning much about Node Js, so I made several mistakes. Node Js is known for causing trouble to amateurs. Thankfully I had stackoverflow to the rescue.
- It was the first software I published to NPM.
Accomplishments that I'm proud of
I am proud I could make the project the way I wanted to.
What I learned
I learned several new things in Javascript and Node Js, specifically about correctly implementing modules and callbacks to create an efficient non blocking asynchronous piece of software. I must say that I write far better code now compared to when I was creating lazlodb.
What's next for lazlodb
Its been almost 2 years since that project. After lazlodb I also created a standalone lazlo library for Javascript and deployed lazlodb on a server with auto update and auto backup features. The library is called lazlo-node and the server deployment example is lazlo-on-server. I had stopped the development of lazlodb after my project submission in college. But I am considering a release of version 2 with more features like blob support, encryption and user accounts.
Built With
- messagepack
- node.js

Log in or sign up for Devpost to join the conversation.