1 Punkte von credible 4 시간 전 | Noch keine Kommentare. | Auf WhatsApp teilen

Ich bin im ersten Studienjahr und wollte verstehen, wie eine Datenbank-Engine in der Praxis tatsächlich funktioniert, deshalb habe ich vor vier Monaten angefangen, selbst eine zu bauen. Anfangs war es ein LSM-Tree-Key-Value-Store zum Lernen, aber nachdem ich eine Vektor-Schicht hinzugefügt und einen HNSW-Index daraufgesetzt hatte, wurde daraus eine On-Device-Vektor-Datenbank.

Alles ist in C geschrieben und hat keine externen Abhängigkeiten. Es ist eine eingebettete Bibliothek, die ohne Server direkt in eine App gelinkt wird und auf dem Gerät selbst läuft, mit dem Ziel, On-Device-RAG oder semantische Suche zu ermöglichen.

Wichtige Bestandteile:

  • LSM-Tree-Storage (WAL + Memtable + SST + Compaction)
  • HNSW-Vektorindex (Approximate Nearest Neighbor Search)
  • ARM-NEON-SIMD-Distanzkernel (float32 / int8, L2 / Dot)
  • Stringbasierte Query-API (Vektorsuche mit kombinierten Filtern, einfache FFI-Bindings)

Der aktuelle Funktionsumfang umfasst grundlegende CRUD- und Query-Funktionen.

Es ist noch v1, daher gibt es noch offene Punkte bei Optimierung und Funktionsumfang (x86-Unterstützung, Nebenläufigkeit, Mobile-Bindings usw.); Einschränkungen und Roadmap stehen in der README.

Der Name ist livero (libero, italienisch für „frei“ + vector). Der Name soll ausdrücken, dass es ein Vector Store ist, der frei von Servern und Abhängigkeiten ist und frei auf dem Gerät läuft :)

Noch keine Kommentare.

Noch keine Kommentare.