Hyperion is minimal, lightweight implementation of a relational database management system written in Pure C. At the moment, the following features are supported.
- Single Static Table
-
SELECT
queries -
INSERT
queries - In-Memory Storage
- Persistance to disk
- Minimal SQL Parsing and SQLite Meta-Command Support
- B-Tree Support
- Clone this repository using
git clone
cd
into the directory you cloned into- Run
make
(ensure you havemake
andgcc
installed) - Run the executable built (i.e.
./hyperion
)
.
├── Makefile
├── proposal.pdf
├── test.py // rudimentary testing script to mock Rspec
├── README.md
└── src
├── database.c // Loads the Database and Table
├── database.h
├── executor.c // accepts compiled statements and executes them
├── executor.h
├── pager.c // Memory IO and the Cursor Abstraction
├── pager.h
├── parser.c // parses the text input into internal statement representation
├── parser.h
├── utils.c // General Utilities - Input Buffer, Prompt, etc
├── utils.h
├── globals.h // important macros, typdefs and structs
└── main.c // driver code
1 directory, 13 files
- Fork this repository
- Clone the forked repository
- Switch to a new branch within the repository using
git checkout -b <your branch name>
- Make all your changes within your branch - don't forget to commit often!
- Once you're done, push your changes to the origin using
git push -u origin <your branch name>
- Open a Pull Request, and await code review!
This Project drew inspiration from this tutorial.