| Crates.io | wql |
| lib.rs | wql |
| version | 0.1.3 |
| created_at | 2021-02-12 23:49:56.824603+00 |
| updated_at | 2021-03-13 17:41:54.661679+00 |
| description | Crate to parse WQL |
| homepage | |
| repository | https://github.com/naomijub/wooridb/wql |
| max_upload_size | |
| id | 354425 |
| size | 97,111 |
WooriDB is a general purpose (EXPERIMENTAL) time serial database, which means it contains all entities registries indexed by DateTime. It is schemaless, key-value storage and uses its own query syntax that is similar to SparQL and Crux's Datalog.
Some other features are:
ENCRYPT keyword.CHECK keyword.Ron schemas for input and output.
entity_name (Entity Tree), DateTime (Time Serial) and Uuid (Entity ID). Entity format is a HashMap where keys are strings and values are supported Types.S3 as a backend is to be developed.Postgres as a backend is to be developed.DynamoDB as a backend is to be developed.P suffix.
98347883122138743294728345738925783257325789353593473247832493483478935673.9347324783249348347893567393473247832493483478935673P.Config.toml.Woori means our and although I developed this DB initially alone, it is in my culture to call everything that is done for our community and by our community ours.
This project is hugely inspired by:
Crux;
Professor Andy Pavlo Database classes.
To run WooriDB it is necessary to have Rust installed in the machine. There are two ways to do this:
Go to rustup.rs and copy the command there, for unix it is curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh.
Clone WooriDB and execute make setup.
Release mode performance: make release in project root for performance optimization.Release mode size: make run in project root for size optimization.Debug mode: make debug in project root.you can find the latest docker image at naomijub/wooridb. The current most stable tag is beta-3. To execute the docker container run:
docker run -p 1438:1438 naomijubs/wooridb:beta-3 debug for debug mode.docker run -p 1438:1438 -e AUTH_HASHING_COST=8 -e ADMIN=your-admin-id -e ADMIN_PASSWORD=your-admin-pswd naomijubs/wooridb:beta-3 run for size optimization.docker run -p 1438:1438 -e AUTH_HASHING_COST=8 -e ADMIN=your-admin-id -e ADMIN_PASSWORD=your-admin-pswd naomijubs/wooridb:beta-3 release for performance optimization.-e/--env can be replaced by a --env-file path/to/your/.env. Your .envfile should contain the following fields:HASHING_COST=16
PORT=1438
AUTH_HASHING_COST=8
ADMIN=your-admin-id
ADMIN_PASSWORD=your-admin-pswd
RON format. Support for JSON and EDN will be done later by using features.S3, Postgres and DynamoDB will also be done later by using features.P at the end.
UPDATE CONTENT.INSERT {a: 98347883122138743294728345738925783257325789353593473247832493483478935673.9347324783249348347893567393473247832493483478935673P, } INTO my_entity.BLOB will not be supported. Check out To BLOB or Not To BLOB: Large Object Storage in a Database or a Filesystem.HASHING_COST=16
PORT=1438
MacBook Pro, 2.2 GHz Intel Core i7, 16 GB 2400 MHz DDR4
create_entity time: [15.269 ms 15.332 ms 15.396 ms]insert_entity time: [27.438 ms 28.177 ms 28.958 ms]update_set_entity time: [22.969 ms 23.382 ms 23.839 ms]update_content_entity time: [23.181 ms 23.578 ms 24.037 ms]delete_entity time: [41.999 ms 42.719 ms 43.492 ms] - Filtered 400sevict_entity_id time: [41.387 ms 42.029 ms 42.731 ms] - Filtered 400sevict_entity time: [31.582 ms 31.805 ms 32.039 ms] - Filtered 400sselect_all 20 entities time: [23.692 ms 24.183 ms 24.690 ms]select_all 10 entities time: [22.018 ms 22.301 ms 22.586 ms]select_all 1 entity time: [19.963 ms 20.679 ms 21.412 ms]