Nano is a persistent, secure, key-value store I built from scratch in python to understand how sockets, async i/o, and LSM Trees work
Clone the repository
$ git clone https://github.com/SujayKarpur/Nano.git
$ cd NanoSet up and activate a python virtual environment
$ python3 -m venv venv
$ source venv/bin/activateInstalls and Permissions...
$ pip install -r requirements.txt
$ sudo chmod +x nanoStart the server
$ python -m server Open a new tab and run the client
$ ./nanohelp
Displays help menu.
exit
Exits the session.
LIST
Lists all databases.
CREATE <database>
Creates a database.
DROP <database>
Drops a database.
SHARE <username> <permission_level>
Grants another user permissions to read/write/share the selected database.
SELECT <database>
Selects a database.
GET <key>
Retrieves a value.
SET <key> <value>
Sets a key’s value.
DELETE <key>
Deletes a key.
key-value stores are the simplest kind of databases - they are just mappings from keys to values.
Nano implements a basic in-memory key-value store using python dictionaries that supports some simple operations:



