A NoSQL key-value database implemented in C++. This project supports CRUD operations, persistence, and a simple query language.
- CRUD Operations: Create, Read, Update, and Delete key-value pairs.
- Persistence: Save and load the database to and from disk.
- Query Language: A simple query language to interact with the database.
- Singleton Pattern: Ensures a single instance of the query language.
- Modular Design: Organized into separate classes for better maintainability.
- C++17 or later
- CMake (for building the project)
- MinGW (for GCC on Windows)
-
Clone the repository:
git clone https://github.com/omerhalid/database_oprex.git cd database_oprex
-
Create a build directory and navigate to it:
mkdir build cd build
-
Run CMake to configure the project:
cmake .. -G "MinGW Makefiles"
-
Build the project:
mingw32-make
-
Navigate to the build directory:
cd build
-
Run the executable:
./main
The following commands are supported by the query language:
PUT key value
: Insert or update a key-value pair.GET key
: Retrieve the value for a given key.REMOVE key
: Remove a key-value pair.CONTAINS key
: Check if a key exists.SAVE filename
: Save the database to a file.LOAD filename
: Load the database from a file.EXIT
: Exit the program.
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
This project is licensed under the MIT License. See the LICENSE file for details.
Ömer Halit Cinar [email protected]