The project doesn't have any name so let it be database for now.
See docs
docs/- project documentationsrc/kernel/- core concept of the system. All modules (exceptprotocol) depends on it. It should provide conceptual abstraction for other modules. Good examples areSystemResultandSystemError. Other part of system uses them to handle errors that are not local for a module but more system wide.src/node/- database node (member, server, instance) code. Handles network communication with clients and process management of incoming queries. It also contains concretetraitimplementations fromsrc/protocol/module.src/protocol/- server-side (backend) API of PostgreSQL Wire Protocol The goal is to provide high leveltraits andstructs to help otherrustdatabase implementations bePostgreSQLcompatible. Must not depend on any modules of the system and has as small as possible dependencies on other crates because it is intended to move out of the project into completely separate crate. Right now it is in the project because of ease of testing, prototyping and development.src/sql_engine/- module to execute incomingSQLqueries. That is it.src/sql_types/- module contains code to support differentSQLtypes and incoming data validationsrc/storage/- module to persist and retrieve execution results ofSQLqueries. It is split into two major parts:FrontendStorageandBackendStorage.FrontendStorageis responsible to provide high levelrelationalAPI likeCREATE SCHEMA,CREAT TABLEandCREATE INDEX.BackendStorageis responsible to hide actual on-disk storage implementation and provide low level API forFrontendStoragelike create a namespace, create an object, read/write data in binary format from/to disk.
For now, it is local and manual - that means some software has to be installed on a local machine and queries result has to be checked visually.
- Install 
psql(PostgreSQL client)- Often it comes with 
PostgreSQLbinaries. On macOS, you can install it withbrewexecuting the following command: 
brew install postgresql
 - Often it comes with 
 - Start the 
databaseinstance with the command:cargo run
 - Start 
psqlwith the following command:psql -h 127.0.0.1 -W
- enter any password
 
 - Run 
sqlscripts fromcompatibilityfolder 
We use PyTest for functional tests. To run tests locally you need to set up
python environment with the following commands:
- If you use linux or macos it is most probably you have 
pythoninstalled. For windows, you can easily installpythonfrom official site. - Install 
pythondependencies withpiprequirements executing the following command:pip install -r tests/functional/requirements.txt
 - or with 
pip3:pip3 install -r tests/functional/requirements.txt
 - After that you can run all tests with:
pytest -v tests/functional/
 - or tests in specified file with:
pytest -v tests/functional/<test_file>.py
 
pip3 and python3 OR pip and python - depends on your system and your
preferences.
For system with both python 2 and 3 - use python3 and pip3 to run tests
with the 3rd version of python.