Baseline reached for KeplerKV
Pre-release
Pre-release
pre-release: v0.1.0-alpha
current features
The current form of the project has reached the baseline requirements I set to do.
- Basic user CLI setup for five basic commands: quit, set, get, delete, and update
- Volatile storage of some basic types: integers, floats, strings, and lists (including multi-dimensional)
- Validation of user input during parsing
challenges
By far the most difficult part of getting the project running was understanding the parsing. The tokenization of user input was straightforward, but I had to restructure the format of my abstract syntax nodes continuously as I stumbled across errors with recursive definitions (for lists) and overcomplexity in the evaluator stage when dealing with values. For now, I settled on a basic model where nodes are either commands or values for commands.
next steps
The next steps for the project include:
- Ideally, finding an easier definition for ValueNode and StoreValue that would reduce redundancy and added overhead
- Lazy evaluation of identifiers whose values are set to other identifiers
- Serialization so data can be non-volatile and persist