Update README.md
This commit is contained in:
parent
67fb49ded5
commit
0bb27027a0
43
README.md
43
README.md
@ -3,14 +3,15 @@
|
|||||||
# Introduction
|
# Introduction
|
||||||
|
|
||||||
ZipponDB is a relational database written entirely in Zig from stractch with 0 dependency.
|
ZipponDB is a relational database written entirely in Zig from stractch with 0 dependency.
|
||||||
It use a custom query language named ZipponQL or ZiQL for short.
|
|
||||||
|
ZipponDB goal is to be ACID, light, simple and high performance. It is aim for small to medium application that don't need fancy features but a simple and reliable database.
|
||||||
|
|
||||||
### Why Zippon ?
|
### Why Zippon ?
|
||||||
|
|
||||||
- Open-source and written 100% in Zig with 0 dependency
|
- Open-source and written 100% in Zig with 0 dependency
|
||||||
- Relational database
|
- Relational database
|
||||||
- Simple and minimal query language
|
- Simple and minimal query language
|
||||||
- Small, fast and implementable everywhere
|
- Small, light, fast and implementable everywhere
|
||||||
|
|
||||||
# Declare a schema
|
# Declare a schema
|
||||||
|
|
||||||
@ -90,7 +91,7 @@ Note: [] are list of value.
|
|||||||
|
|
||||||
# ZipponQL
|
# ZipponQL
|
||||||
|
|
||||||
Zippon have it's own query language. Here the keys point to remember:
|
ZipponDB use it's own query language, ZipponQL or ZiQL. Here the keys point to remember:
|
||||||
|
|
||||||
- {} Are filters
|
- {} Are filters
|
||||||
- [] Are how much; what data
|
- [] Are how much; what data
|
||||||
@ -105,27 +106,29 @@ Zippon have it's own query language. Here the keys point to remember:
|
|||||||
| GRAB User | Get all users |
|
| GRAB User | Get all users |
|
||||||
| GRAB User { name = 'Adrien' } | Get all users named Adrien |
|
| GRAB User { name = 'Adrien' } | Get all users named Adrien |
|
||||||
| GRAB User [1; email] | Get one user's email |
|
| GRAB User [1; email] | Get one user's email |
|
||||||
| GRAB User \| ASCENDING name \| | Get all users ordered by name |
|
| GRAB User \| ASC name \| | Get all users ordered by name |
|
||||||
| GRAB User [name] { age > 10 AND name != 'Adrien' } \| DECENDING age \| | Get just the name of all users that are more than 10 years old and not named Adrien |
|
| GRAB User [name] { age > 10 AND name != 'Adrien' } | Get users' name if more than 10 years old and not named Adrien |
|
||||||
| GRAB User [1] { bestfriend = { name = 'Adrien' } } | Get one user that has a best friend named Adrien |
|
| GRAB User { age > 10 AND (name = 'Adrien' OR name = 'Bob'} | Use multiple condition |
|
||||||
| GRAB User [10; friends [1]] { age > 10 } | Get one friend of the 10th user above 10 years old |
|
|
||||||
|
|
||||||
### Not yet implemented
|
|
||||||
| Command | Description |
|
|
||||||
| --- | --- |
|
|
||||||
| GRAB Message [100; comments [ date ] ] { .writter = { name = 'Adrien' }.bestfriend } | Get the date of 100 comments written by the best friend of a user named Adrien |
|
|
||||||
| GRAB User { IN Message { date > '12-01-2014' }.writter } | Get all users that sent a message after the 12th January 2014 |
|
|
||||||
| GRAB User { !IN Comment { }.writter } | Get all users that didn't write a comment |
|
|
||||||
| GRAB User { IN User { name = 'Adrien' }.friends } | Get all users that are friends with an Adrien |
|
|
||||||
| UPDATE User [1] { name = 'Adrien' } => ( email = 'new@email.com' ) | Update a user's email |
|
| UPDATE User [1] { name = 'Adrien' } => ( email = 'new@email.com' ) | Update a user's email |
|
||||||
| REMOVE User { id = '000-000' } | Remove a user by ID |
|
| REMOVE User { id = '000-000' } | Remove a user by ID |
|
||||||
| ADD User ( name = 'Adrien', email = 'email', age = 40 ) | Add a new user |
|
| ADD User ( name = 'Adrien', email = 'email', age = 40 ) | Add a new user |
|
||||||
|
|
||||||
|
### Not yet implemented
|
||||||
|
| Command | Description |
|
||||||
|
| --- | --- |
|
||||||
|
| GRAB User { age > 10 AND name IN ['Adrien' 'Bob']} | Use multiple condition |
|
||||||
|
| GRAB User [1] { bestfriend = { name = 'Adrien' } } | Get one user that has a best friend named Adrien |
|
||||||
|
| GRAB User [10; friends [1]] { age > 10 } | Get one friend of the 10th user above 10 years old |
|
||||||
|
| GRAB Message [100; comments [ date ] ] { .writter = { name = 'Adrien' }.bestfriend } | Get the date of 100 comments written by the best friend of a user named Adrien |
|
||||||
|
| GRAB User { IN Message { date > '12-01-2014' }.writter } | Get all users that sent a message after the 12th January 2014 |
|
||||||
|
| GRAB User { !IN Comment { }.writter } | Get all users that didn't write a comment |
|
||||||
|
| GRAB User { IN User { name = 'Adrien' }.friends } | Get all users that are friends with an Adrien |
|
||||||
|
|
||||||
# Lexique
|
# Lexique
|
||||||
|
|
||||||
- **Struct:** A struct is the schema of how to store data. E.g. `User`
|
- **Struct:** A struct of how to store data. E.g. `User`
|
||||||
- **Entity:** An entity is one instance of a struct. E.g. one user
|
- **Entity:** An entity is one instance of a struct.
|
||||||
- **Member:** A member is one variable saved in a struct. E.g. `name` in `User`
|
- **Member:** A member is one data saved in a struct. E.g. `name` in `User`
|
||||||
|
|
||||||
# Roadmap
|
# Roadmap
|
||||||
|
|
||||||
@ -137,7 +140,6 @@ Zippon have it's own query language. Here the keys point to remember:
|
|||||||
- [ ] Schema management
|
- [ ] Schema management
|
||||||
- [X] File management
|
- [X] File management
|
||||||
- [ ] Loging
|
- [ ] Loging
|
||||||
- [ ] Base Parser
|
|
||||||
|
|
||||||
#### v0.2 - Usable
|
#### v0.2 - Usable
|
||||||
- [ ] B-Tree
|
- [ ] B-Tree
|
||||||
@ -162,12 +164,13 @@ Zippon have it's own query language. Here the keys point to remember:
|
|||||||
|
|
||||||
#### v0.6 - Performance
|
#### v0.6 - Performance
|
||||||
- [ ] Transaction
|
- [ ] Transaction
|
||||||
- [ ] Lock manager
|
|
||||||
- [ ] Multi threading
|
- [ ] Multi threading
|
||||||
|
- [ ] Lock manager
|
||||||
|
|
||||||
#### v0.7 - Safety
|
#### v0.7 - Safety
|
||||||
- [ ] Auth
|
- [ ] Auth
|
||||||
- [ ] Metrics
|
- [ ] Metrics
|
||||||
|
- [ ] Durability
|
||||||
|
|
||||||
#### v0.8 - Advanced
|
#### v0.8 - Advanced
|
||||||
- [ ] Query optimizer
|
- [ ] Query optimizer
|
||||||
|
Loading…
x
Reference in New Issue
Block a user