-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
91a3327
commit ae7d133
Showing
1 changed file
with
35 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,44 @@ | ||
What is Kivi? | ||
-------------- | ||
Kivi is a high performance in-memory key-value database written in the Zig programming language. Kivi is designed to be embeddable, concurrent, and fast. | ||
Kivi is a high-performance in-memory key-value database written in the Zig programming language. Kivi is designed to be embeddable, concurrent, and fast. | ||
|
||
Kivi is currently in development mode and not production ready. Here's a checklist about what things that are ready: | ||
- [x] Getting ready our first version of the core | ||
- [x] Making a JS library for embedding and using the core that works in Node/Deno/Bun | ||
- [ ] Making server in order to provide access over the network | ||
- [ ] Making a client that can access the database over the network | ||
- [ ] Adding access-over-network support to the JS library | ||
- [ ] Making a benchmark that compares performance difference between Kivi and its competitors | ||
- [ ] Start porting to other languages: Rust, Python, etc... | ||
> :warning: **Kivi is currently in development mode and not production-ready.** | ||
## Latest benchmark: | ||
``` | ||
JsMap: | ||
┌─────────┬─────────────────┬─────────────────────┬────────────────────┬────────────────────────┬───────────────────┬───────────────────────┐ | ||
│ (index) │ totalLookupTime │ totalBulkLookupTime │ totalInsertionTime │ totalBulkInsertionTime │ totalDeletionTime │ totalBulkDeletionTime │ | ||
├─────────┼─────────────────┼─────────────────────┼────────────────────┼────────────────────────┼───────────────────┼───────────────────────┤ | ||
│ 0 │ '134.17 ms' │ '138.9 ms' │ '155.65 ms' │ '301.3 ms' │ '197.46 ms' │ '215.23 ms' │ | ||
│ 1 │ '137.91 ms' │ '135.72 ms' │ '151.54 ms' │ '167.48 ms' │ '242.4 ms' │ '217.72 ms' │ | ||
│ average │ '136.04 ms' │ '137.31 ms' │ '153.59 ms' │ '234.39 ms' │ '219.93 ms' │ '216.48 ms' │ | ||
└─────────┴─────────────────┴─────────────────────┴────────────────────┴────────────────────────┴───────────────────┴───────────────────────┘ | ||
Kivi: | ||
┌─────────┬─────────────────┬─────────────────────┬────────────────────┬────────────────────────┬───────────────────┬───────────────────────┐ | ||
│ (index) │ totalLookupTime │ totalBulkLookupTime │ totalInsertionTime │ totalBulkInsertionTime │ totalDeletionTime │ totalBulkDeletionTime │ | ||
├─────────┼─────────────────┼─────────────────────┼────────────────────┼────────────────────────┼───────────────────┼───────────────────────┤ | ||
│ 0 │ '352.02 ms' │ '774.82 ms' │ '341.96 ms' │ '555.72 ms' │ '346.08 ms' │ '793.16 ms' │ | ||
│ 1 │ '353.9 ms' │ '791.95 ms' │ '341.23 ms' │ '543.91 ms' │ '367.19 ms' │ '805.19 ms' │ | ||
│ average │ '352.96 ms' │ '783.38 ms' │ '341.59 ms' │ '549.81 ms' │ '356.64 ms' │ '799.18 ms' │ | ||
└─────────┴─────────────────┴─────────────────────┴────────────────────┴────────────────────────┴───────────────────┴───────────────────────┘ | ||
This table shows how much JsMap is faster than Kivi: | ||
┌───────────────┬─────────┐ | ||
│ (index) │ Values │ | ||
├───────────────┼─────────┤ | ||
│ lookup │ '2.59x' │ | ||
│ insertion │ '2.22x' │ | ||
│ deletion │ '1.62x' │ | ||
│ bulkLookup │ '5.71x' │ | ||
│ bulkInsertion │ '2.35x' │ | ||
│ bulkDeletion │ '3.69x' │ | ||
└───────────────┴─────────┘ | ||
``` | ||
|
||
## Code of conduct: | ||
You can check our [code of conduct guidelines](CODE_OF_CONDUCT.md). | ||
|
||
## License: | ||
Kivi is licensed under MIT. Head over to [LICENSE](LICENSE) for full description. | ||
Kivi is licensed under MIT. Head over to [LICENSE](LICENSE) for full description. |