This is the main repository for IceDB, a Key-Value Store Database Management System built as a part of the course CS254 (DBMS Lab), CSE Dept, NITK.
- Written in C++.
- The application is a linux command-line application.
- The code uses the Linux kernel coding style (https://www.kernel.org/doc/html/v4.10/process/coding-style.html).
Make sure the current working directory is the main IceDB directory before running these commands:
For the normal build, use the following commands:
$ autoreconf -i
$ ./configure
$ make
This will place object files and other build related files inside the root directory of the repository.
For the VPATH build, to make sure that the root directory of the repository is clean, run the following commands:
$ autoreconf -i
$ mkdir build
$ cd build
$ ../configure
$ make
Use sudo make install
if the application needs to be installed globally.
The Repo follows a standard C++ Project structure with:
- bin: For storing binaries after compilation.
- build: For storing object files generated during build.
- docs: For storing documentation.
- include: For storing header files.
- lib: For storing dependencies as static libraries.
- src: For storing source files.
The build is handled by autotools.
All of these applications and libraries need to be installed before building IceDB.
- autoconf (>= 2.69)
- automake (>= 1.15)
- Libtool (>= 2.4.6)
- pkg-config
- libreadline-dev (Development files for GNU readline)
The master branch doesn't have encryption support. In order to build the application without encryption support:
git clone https://github.com/suhasks123/IceDB.git
For encryption support, clone the encryption-support
branch:
git clone -b encryption-support https://github.com/suhasks123/IceDB.git
Databases are essentially encrypted when the code from the encryption-support
branch is used.
The report for the project is contained in the docs/
directory in the repository.
- Suhas K S(181CO253) - https://github.com/suhasks123
- Sai Krishna Anand (181CO244) - https://github.com/SaiKrishna1207