HelixDB؛ دیتابیس گراف-وکتور با Rust برای اپهای هوش مصنوعی
خلاصهٔ کاملتر
تو این پروژه اومده که HelixDB یه دیتابیس گراف-وکتوره که کاملاً از صفر با Rust نوشته شده و هدفش اینه که ساختن همهٔ تیکههایی که یه اپ هوش مصنوعی لازم داره رو تو یه پلتفرم واحد جمع کنه. ادعای اصلیش اینه که دیگه لازم نیست یه دیتابیس اپلیکیشن، یه دیتابیس رابطهای، یه وکتور-دیتابیس و یه گراف-دیتابیس جدا داشته باشی و لایههای مختلف ذخیرهسازی رو دستی به هم بچسبونی.
مدل دادهٔ اصلی Helix گراف بهعلاوهٔ وکتوره، ولی KV و داکیومنت و دادهٔ رابطهای رو هم پشتیبانی میکنه. کاربرد اصلیای که روش تأکید میشه اینه که به ایجنتها دسترسی فدِرِیتد به دادهٔ شرکت میده تا برای حافظه و "مغز شرکت" و اپلیکیشنها ازش استفاده کنن.
برای شروع یه CLI داری که اینستنسهای لوکال رو اجرا و مدیریت میکنه و با Helix Cloud هم حرف میزنه. یه مسیر خیلی سریع به اسم helix chef هم هست که یه بوتاسترپر تعاملیه: اسکیلهای کوئری و MCP داکس رو نصب میکنه، یه پروژه میسازه، یه اینستنس لوکال بالا میاره و یهکم دادهٔ نمونه میریزه. اگه یه ایجنت کدنویسی مثل Claude Code یا Codex در دسترس باشه، میتونه از روی یه توضیح یکخطی کل اپ رو بسازه.
برای راهاندازی دستی هم با helix init پروژه رو اسکفولد میکنی، با helix start dev یه اینستنس لوکال رو روی پورت 6969 بالا میاری و با helix query کوئری میفرستی. یه نکتهٔ مهم اینه که حالت ذخیرهسازی پیشفرض in-memory هست، یعنی با استاپکردن اینستنس دادهش پاک میشه؛ برای موندگاری داده باید فلگ --disk رو بدی.
کوئریها با یه DSL تو Rust یا TypeScript نوشته میشن و مستقیم بهصورت درخواست داینامیک به مسیر POST /v1/query فرستاده میشن، بدون هیچ مرحلهٔ build یا deploy. جالب اینه که هر دو SDK در نهایت یه AST جیسونی یکسان تولید میکنن. این تیکهٔ TypeScript نشون میده یه کوئری ساخت کاربر چطوری تعریف میشه:
function addUser(p = addUserParams) {
return writeBatch()
.varAs("user",
g().addN("User", { name: PropertyInput.param("name") })
.project([PropertyProjection.new("name")]),
)
.returning(["user"]);
}یه نسخهٔ ابری به اسم HelixDB Cloud هم هست که روی object-storage سواره و سرچ وکتوری و full-text یکپارچه، تراکنشهای کامل ACID، یه نویسندهٔ واحد با نودهای خوانندهٔ auto-scale و دسترسپذیری بالا داره. مسیر دیپلوی کلاستر ابری از اینستنس لوکال جداست و با دستورهای helix auth login و helix sync کار میکنه.
نکات کلیدی:
- دیتابیس گراف-وکتور که از صفر با Rust نوشته شده
- چند نوع دیتابیس جدا رو تو یه پلتفرم واحد جمع میکنه
- مدل اصلی گراف+وکتوره، ولی KV و داکیومنت و رابطهای هم داره
- کوئریها با DSL تو Rust یا TypeScript نوشته میشن و هر دو AST جیسونی یکسان میسازن
- حالت ذخیرهٔ پیشفرض in-memory هست؛ برای موندگاری باید --disk بدی




