noam87 / HelloDB.jl

SQL Database Written in Julia for Shits xor Giggles (abandoned)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hello Database!

Because hello_world is so 1974, and hello_todo is so 2015.

WORK IN PROGRESS - WHENEVER I FEEL LIKE IT

What is this?

I originally started this project in Rust.

I figured the best way to learn a new language would be to implement a SQL database. Also that it would be the best way to learn how to implement a SQL database.

This repo's in Julia which is both one of the most powerful dynamic languags out there right now, and a joy to work in!

This is mostly an educational exercise for myself, but I will try to make the code as readable as I can and include lots of explanatory comments, both for the betterment of futureme and others.

Why a database?

A database involves understanding IO (read/write to/from disk), memory management, networking (server/client), string parsing (implement SQL interpreter), testing (you must test your database fool!), and organizing a large codebase.

So it's a pretty decent way to master a new language in one go.

Have you ever written a database before?

No. I am mostly following the design of the database described in the book Database Design and Implementation, which includes sample code in Java.

Are you actually gonna build a complete SQL database in Julia?

Should I use HelloDB to launch my next big-data web-scale billion dollar startup?

Yes.

License

 DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
                    Version 2, December 2004

 Copyright (C) 2016 Noam Gagliardi-Rabinovich

 Everyone is permitted to copy and distribute verbatim or modified
 copies of this license document, and changing it is allowed as long
 as the name is changed.

            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. You just DO WHAT THE FUCK YOU WANT TO.

About

SQL Database Written in Julia for Shits xor Giggles (abandoned)

License:Other


Languages

Language:Julia 99.8%Language:Shell 0.2%