An open API service indexing awesome lists of open source software.

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.

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.