# About

## Me

ZipponDB is developped by a single person, [Adrien Bouvais](https://github.com/MrBounty).

I started this project because I wanted to learn a lot of things:

* Database
* Zig
* CI/CD
* Data structures
* Algorithms
* Documentation
* Memory management
* High performance
* Low level programming
* ...

### Why

I wanted to create a "real" project, not just some TODO app. But something original with actually everything.
That's why I added automatic documentation update when push in main. Or automatic build and release when I push a new tag. And why I make it look like a proper open-source project.

I didn't research that much how other db do stuff. I wanted to just do it, figure it out and make silly mistake. That how you learn.
I may take this knowledge and try to do more niche database, something maybe a bit more through upfront.
Because here I just wrote the simpliest query I could think of that can do easy relationship.
But let's be honest, that's kind of a mess. I more want to do like a vector db or tigerbeetle and there transaction database.

Or just just simply a SQL db. I mean I don't think it would be that difficult based on what I already did.

### How

I came into this project with 0 real knowledge of how a database work and a small week-end of coding zig. I didn't read that much about how other people make databases.
My goal was more to learn by mistake, doing it myself. I spended a lot of time at the beguining planing how the database will work inside, before coding.

For the how itself, I solved one small problem at the time. 'How to open a file ?', 'How to read and write bytes ?', 'How to do a tokenizer ?', etc... And litle by litle, 
you go closer and closer to your objectif.

I learned a lot of thing with this project. And even if I would do some part differently if I do it again, I think it is a fairly decent piece of software.
