https://github.com/fomadev/kiva-db
KivaDB v1.0.0 : Moteur Clé-Valeur haute performance en C. Architecture Append-Only & Indexation RAM (O(1)). Vitesse : +38 000 ops/sec (Buffered I/O). Inclus : Shell interactif, Scan, Stats et Compaction. Fiabilité : Verrouillage de fichier et Stress Test validé. Un stockage léger, rapide et robuste sous licence MIT.
https://github.com/fomadev/kiva-db
append-only c data-structures database hacktoberfest hash-map high-performance key-value-store mit-license nosql open-source storage-engine
Last synced: about 2 months ago
JSON representation
KivaDB v1.0.0 : Moteur Clé-Valeur haute performance en C. Architecture Append-Only & Indexation RAM (O(1)). Vitesse : +38 000 ops/sec (Buffered I/O). Inclus : Shell interactif, Scan, Stats et Compaction. Fiabilité : Verrouillage de fichier et Stress Test validé. Un stockage léger, rapide et robuste sous licence MIT.
- Host: GitHub
- URL: https://github.com/fomadev/kiva-db
- Owner: fomadev
- License: mit
- Created: 2026-01-13T19:07:49.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-01-29T07:59:35.000Z (about 2 months ago)
- Last Synced: 2026-01-29T22:26:06.711Z (about 2 months ago)
- Topics: append-only, c, data-structures, database, hacktoberfest, hash-map, high-performance, key-value-store, mit-license, nosql, open-source, storage-engine
- Language: C
- Homepage:
- Size: 45.9 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# KivaDB 🚀
KivaDB est un moteur de base de données clé-valeur (Key-Value Store) ultra-léger écrit en C, inspiré par l'architecture **Bitcask**. Il utilise un journal d'écriture seule (*Append-only log*) et une table de hachage en mémoire pour garantir des performances de pointe.
## ✨ Nouveautés de la v1.0.3
- **Opérations Groupées (Bulk)** : Traitez plusieurs clés en une seule commande grâce au mot-clé `and`.
- **Analyseur Syntaxique Avancé** : Support robuste des guillemets pour les chaînes contenant des espaces.
- **Performances Certifiées** : Capacité de traitement de +26 000 ops/sec (validé par stress test).
- **Typage Dynamique** : Détection automatique des types `String`, `Number`, et `Boolean`.
## 🛠️ Installation & Compilation
Assurez-vous d'avoir `gcc` et `make` installés sur votre système.
```bash
git clone https://github.com/votre-compte/kivadb.git
cd KivaDB
make
```
## Utilisation du Shell
Lancez la base de données :
```bash
./kivadb
```
Commandes disponible :
Commande
Syntaxe Bulk / Avancée
Description
set
set k1 v1 and k2 "valeur complexe"
Crée de nouvelles paires clé-valeur.
get
get key1 and key2
Récupère les valeurs d'une ou plusieurs clés.
update
update key1 val1 and key2 val2
Modifie des clés existantes uniquement.
typeof
typeof <key>
Affiche le type détecté (string, number, boolean).
del
del key1 and key2
Supprime une ou plusieurs clés de l'index.
scan
scan
Liste toutes les clés, types et tailles en RAM.
compact
compact
Défragmente le fichier .kiva pour libérer l'espace.
stats
stats
Affiche l'état de santé et la fragmentation.
## 📈 Performances (Stress Test)
Les tests effectués sur la v1.0.3 montrent des résultats exceptionnels pour un moteur monothread :
* **Volume** : 100 000 entrées.
* **Temps total** : ~3.79 secondes.
* **Vitesse moyenne** : 26 364 ops/sec.
* **Stabilité** : Intégrité des données vérifiée post-insertion massive.
# ⚖️ Licence
Distribué sous licence MIT.