1 points par credible 4 시간 전 | Aucun commentaire pour le moment. | Partager sur WhatsApp

Je suis en première année d’université et, curieux de comprendre comment fonctionne réellement un moteur de base de données, j’ai commencé à en créer un moi-même il y a 4 mois. Au départ, c’était un magasin clé-valeur LSM-tree à but pédagogique, puis en y ajoutant une couche vectorielle et un index HNSW, c’est devenu une base de données vectorielle on-device.

Tout est écrit en C, sans dépendance externe. C’est une bibliothèque embarquée que l’on lie directement à une application, sans serveur, et qui s’exécute sur l’appareil ; elle vise les usages de RAG on-device et de recherche sémantique.

Principaux composants :

  • Stockage LSM-tree (WAL + memtable + SST + compaction)
  • Index vectoriel HNSW (recherche approximative des plus proches voisins)
  • Kernels de distance ARM NEON SIMD (float32 / int8, L2 / dot)
  • API de requête basée sur des chaînes (recherche vectorielle combinée à des filtres, facile à lier via FFI)

Les fonctionnalités actuelles couvrent le CRUD de base et les requêtes.

Comme il s’agit encore d’une v1, il reste des optimisations et des éléments à compléter (prise en charge de x86, concurrence, bindings mobiles, etc.) ; les limites et la feuille de route sont décrites dans le README.

Le nom est livero (libero, « libre » en italien + vector). Je l’ai choisi avec l’idée d’un vector store libre des serveurs et des dépendances, qui tourne librement sur l’appareil :)

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.