1 pontos por credible 4 시간 전 | Ainda não há comentários. | Compartilhar no WhatsApp

Sou calouro na universidade e, curioso para entender como um mecanismo de banco de dados realmente funciona, comecei a criar um por conta própria há 4 meses. No início era um armazenamento chave-valor LSM-tree para aprendizado, mas, ao adicionar uma camada vetorial e um índice HNSW, ele se tornou um banco de dados vetorial on-device.

Foi escrito inteiramente em C e não tem dependências externas. É uma biblioteca embarcada que pode ser vinculada a um app e roda diretamente no dispositivo, sem servidor; o objetivo é uso em RAG on-device e busca semântica.

Principais componentes:

  • Armazenamento LSM-tree (WAL + memtable + SST + compactação)
  • Índice vetorial HNSW (busca aproximada de vizinhos mais próximos)
  • Kernels de distância ARM NEON SIMD (float32 / int8, L2 / dot)
  • API de consulta baseada em strings (busca vetorial combinada com filtros, fácil de integrar via FFI)

Atualmente, oferece funcionalidades básicas de CRUD e consulta.

Ainda está na v1, então há otimizações e partes a completar (suporte a x86, concorrência, bindings para mobile etc.), e as limitações e o roadmap estão descritos no README.

O nome é livero (libero, “livre” em italiano + vector). Escolhi esse nome com o significado de um vector store livre de servidores e dependências, que roda livremente no dispositivo :)

Ainda não há comentários.

Ainda não há comentários.