Debian tarqatmalari uchun takrorlanadigan paketlar talabi kuchaymoqda
Debian hamjamiyati takrorlanadigan paketlar (reproducible builds)ni majburiy qilishni ko'rib chiqmoqda – bu xavfsizlik, ishonchlilik va sifatni oshiradi.

Sun'iy intellekt va mashina o'rganish sohalarida ko'p‑o'lchamli vektor embeddinglari muhim rol o'ynaydi. Ushbu embeddinglarni samarali saqlash, izlash va boshqarish uchun maxsus ma'lumotlar bazasi kerak bo'ladi. Yaqinda chiqgan header‑only C kutubxonasi bu muammoni oddiy, tez va kengaytiriladigan yechim bilan hal qiladi.
vdb.h faylini loyihaga qo'shish kifoya, alohida kutubxonani yig'ish shart emas.#define VDB_MULTITHREADED bilan yoqiladi, barcha operatsiyalar o'qish‑yozish qulfidan foydalangan holda xavfsiz bajariladi..vdb formatida faylga yozish va qayta yuklash imkoniyati.malloc/free funksiyalarini belgilashi mumkin.pthreads (ko'p iplikli rejimda) talab qilinadi.vdb.py orqali C kutubxonasini Python dasturidan chaqirish mumkin.Kutubxona vdb_database strukturasini yaratadi, unda vektorlar, ularning identifikatorlari (ID) va ixtiyoriy metadata saqlanadi. Vektor qo'shish, o'chirish, qidirish va ma'lumotlarni faylga yozish funksiyalari bir-biriga yaqin C API orqali taqdim etiladi.
#include "vdb.h"
int main(void) {
vdb_database *db = vdb_create(128, VDB_METRIC_COSINE);
float vec[128] = { /* ... */ };
vdb_add_vector(db, vec, "vec1", NULL);
float query[128] = { /* ... */ };
vdb_result_set *res = vdb_search(db, query, 5);
vdb_free_result_set(res);
vdb_destroy(db);
return 0;
}
Yuqoridagi kodda 128 o'lchamli kosinus masofasi bo'yicha vektor bazasi yaratiladi, bir vektor qo'shiladi, so'ngra 5 ta eng yaqin qo'shni topiladi.
Ko'p iplikli rejimda barcha operatsiyalar read‑write lock yordamida sinxronlanadi:
Bu dizayn dasturchilarga qo'shimcha qulf kodini yozmasdan, yuqori samaradorlikka erishish imkonini beradi.
Ma'lumotlar bazasi binar formatda 0x56444230 ("VDB0") magic raqami bilan boshlanadi. Sarlavhada o'lcham, vektorlar soni va tanlangan masofa mezoni saqlanadi. Har bir vektor uchun float massiv, ID uzunligi va ID matni ketma‑ketik yoziladi. Metadata esa faylga yozilmaydi, lekin xotirada mavjud bo'ladi.
1️⃣ Yengillik – bitta fayl, hech qanday dinamik kutubxona kerak emas. 2️⃣ Samaradorlik – k‑yaqin qo'shnilar qidiruvi O(N) vaqt ichida amalga oshadi, lekin kichik ma'lumotlar bazalari uchun bu yetarli. 3️⃣ Moslashuvchanlik – C, C++, Python kabi tillarda ishlatish mumkin.
AI dasturlarida, tavsiya tizimlarida yoki tasvir tanishuvda vektor embeddinglarini tezkor qidirish zarur bo'lganda, ushbu kutubxona kichik yoki o'rta hajmdagi loyihalar uchun ideal tanlovdir.
Header‑only C vektor ma'lumotlar bazasi kutubxonasi, o'zining sodda API, ko'p o'lchamli vektorlarni qo‘llab‑quvvatlashi, ko'p iplikli xavfsizligi va Python bog‘lanishi bilan dasturchilarga qulay, tez va kengaytiriladigan yechim taklif etadi. Litsenziyasi Apache 2.0 bo‘lgani sababli, ochiq manba hamjamiyati tomonidan erkin foydalanish va takomillashtirish mumkin.