Updated docs and roadmap
This commit is contained in:
parent
abe9445d72
commit
1ca2fc5470
@ -18,18 +18,19 @@
|
||||
- [X] Logs
|
||||
- [X] Query multi threading
|
||||
- [ ] Arrays manipulation
|
||||
- [ ] Ordering
|
||||
|
||||
#### v0.3 - QoL
|
||||
- [X] Docs website
|
||||
- [ ] Dot operator
|
||||
- [ ] Schema migration
|
||||
- [~] Dump/Bump data
|
||||
- [ ] Recovery
|
||||
- [ ] Better CLI
|
||||
- [ ] Linked query
|
||||
|
||||
### Beta
|
||||
#### v0.4 - Usability
|
||||
- [ ] Server
|
||||
- [ ] Single file
|
||||
- [ ] Docker
|
||||
- [ ] YAML config file
|
||||
- [ ] Python interface
|
||||
@ -46,24 +47,12 @@
|
||||
- [ ] Index
|
||||
|
||||
#### v0.7 - Safety
|
||||
- [ ] Auth
|
||||
- [ ] Metrics
|
||||
- [ ] Durability
|
||||
|
||||
### Gold
|
||||
#### v0.8 - Advanced
|
||||
- [ ] Query optimizer
|
||||
- [ ] Single file
|
||||
|
||||
#### v0.9 - Docs
|
||||
#### v0.8 - Docs
|
||||
- [ ] ZiQL tuto
|
||||
- [ ] Deployment tuto
|
||||
- [ ] Code docs
|
||||
- [ ] CLI help
|
||||
|
||||
#### v1.0 - Web interface
|
||||
- [ ] Query builder
|
||||
- [ ] Tables
|
||||
- [ ] Schema visualization
|
||||
- [ ] Dashboard metrics
|
||||
|
||||
|
@ -183,7 +183,11 @@ The only shared atomic values between threads are the number of found structs an
|
||||
|
||||
### AdditionalData
|
||||
|
||||
TODO: Explain the data strucutre and how it works.
|
||||
AdditionalData keep what is between `[]`. It is composed of 2 struct `AdditionalData` and `AdditionalDataMember`.
|
||||
|
||||
`AdditionalDataMember` have the name of the member, it's position in the schema file and an `AdditionalData`.
|
||||
|
||||
`AdditionalData` have a limit (the first part `[100]`), and a list of `AdditionalDataMember`.
|
||||
|
||||
### Filters
|
||||
|
||||
@ -222,7 +226,16 @@ I transform ConditionValue into Zid Data. Maybe I can directly do a map member n
|
||||
|
||||
### RelationMap
|
||||
|
||||
TODO: Explain.
|
||||
A `RelationMap` is use when I need to return relationship. Let's say we have this query `GRAB User [orders [date]]`.
|
||||
|
||||
The `RelationMap` have a struct_name, here Order. A member name, here orders. A map with UUID as key and a string as value.
|
||||
|
||||
When I first init the map, I am parsing the first struct (here User). So it populate the map with empty string for entities that I want to return.
|
||||
Here it will be UUID of Order.
|
||||
|
||||
Then I parse Order file and add the string to the right UUID, skipping UUID that are not in the map.
|
||||
Once that done, I parse the JSON response that I generated when parsing User. Where a relationship should be, there is `{<|[16]u8|>}`, where `[16]u8` is the UUID of the entity that shoud be here.
|
||||
So now I can just replace it by the right key in the map.
|
||||
|
||||
## EntityWriter
|
||||
|
||||
|
@ -25,30 +25,32 @@ medium applications that want a quick and simple database.
|
||||
|
||||
## Key Features
|
||||
|
||||
* **Small:** ZipponDB binary is small, around 2-3Mb.
|
||||
* **Fast:** ZipponDB can parse millions of entities in milliseconds.
|
||||
* **Relationship:** ZipponDB is build with focus on easy relationship.
|
||||
* **Query Language:** ZipponDB use it's own simple query language.
|
||||
* **No dependencies:** ZipponDB depend on nothing, every line of code running is in the codebase.
|
||||
* **Open-source:** ZipponDB is open-source under MIT licence.
|
||||
* **Portable:** ZipponDB can be easily compiled and deployed across various platforms.*
|
||||
* **Small:** Binary is small, ~200kb for small and ~3Mb for fast.
|
||||
* **Fast:** Parse millions of entities in milliseconds.
|
||||
* **Relationship:** Build with focus on easy relationship.
|
||||
* **Query Language:** Use it's own simple query language.
|
||||
* **No dependencies:** Depend on nothing, every line of code running is in the codebase and written for ZipponDB.
|
||||
* **Open-source:** Open-source under MIT licence.
|
||||
* **Portable:** Easily compiled and deployed across various platforms.*
|
||||
|
||||
<small>* Plan for more platforms like arm, 32 bit system.</small>
|
||||
|
||||
### After
|
||||
|
||||
* **Auth:** Be able to auth users, maybe third-party OAuth.
|
||||
* **HTTP server:** Be able to start a simple HTTP server and send json.
|
||||
* **Interface:** Small package to interact with ZipponDB from different programming language.
|
||||
* **Single file:** Like SQLite, ZipponDB's database aim to be a single file.
|
||||
* **Web interface:** Similare to EdgeDB, getting a webapp to query and config the DB.
|
||||
* **Schema migration:** Update dynamically database schema.
|
||||
* **Safety and Performance:** Improve general safty and performance.
|
||||
|
||||
<small>More info in the Roadmap.</small>
|
||||
|
||||
### Maybe
|
||||
|
||||
Those are idea for very long term with 0 promesse.
|
||||
Those are idea for very long term with 0 promesse, maybe as extension.
|
||||
|
||||
* **Web interface:** Similare to EdgeDB, getting a webapp to query and config the DB.
|
||||
* **HTTP server:** Be able to start a simple HTTP server and send json.
|
||||
* **Auth:** Be able to auth users, maybe third-party OAuth.
|
||||
* **Per user database:** Like Turso.
|
||||
* **Performace:** I'm sure I can do better.
|
||||
* **Client side database:** Run it on the client side with WASM.
|
||||
|
@ -35,8 +35,9 @@ Currently, there will be four keywords for manipulating lists:
|
||||
- `REMOVE`: Checks the list, and if the value is found, deletes it.
|
||||
- `REMOVEAT`: Deletes the value at a specific index.
|
||||
- `CLEAR`: Removes all values from the array.
|
||||
- `POP`: Remove the last value.
|
||||
|
||||
Except for `CLEAR`, which takes no value, each keyword can use one value or an array of values. If you choose an array, it will perform the operation on all values in the array.
|
||||
Except for `CLEAR` and `POP`, which takes no value, each keyword can use one value or an array of values. If you choose an array, it will perform the operation on all values in the array.
|
||||
|
||||
For relationships, you can use filters:
|
||||
```js
|
||||
|
Loading…
x
Reference in New Issue
Block a user