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

Share this project:

Updates