Building a key/value store using C++
By Steve Claridge on 2022-10-03.
I'm building a key/value store in C++ that uses SQLite for storage and has a simple command-line interface for storing and retrieving values. I want to use this to store often-used commands/snippets/passwords or anything else I need quickly and often when I'm using a terminal.
Requirements
Not sure what I'm calling this yet but lets assume its called kv
for now.
kv -p <key> <value>
adds or replaces keyand stores against it kv <key>
retrieves the value stored foror returns nothing is no key found kv -d <key>
deletes the given keykv -list
all keys that currently exist in alphabetical orderkv -list <search-term>
lists all keys that start with the search term in alphabetical orderkv -help
shows a help page- Must allow piping of values e.g. `history | grep < kv
' - SQLite DB file should be stored in standard location for host OS
- Keys with spaces are NOT supported
- Values with spaces ARE supported by enclosing in double quotes
- Keys are NOT case sensitive
- Keys can include punctuation
Non-functional requirements
I'm using this project as a way to get back into C++ after a long time in Java-land. So want to use the latest, common and standard tools: