pgrust: بازنویسی پستگرس با زبان Rust
خلاصهٔ کاملتر
pgrust یه پروژهٔ متنبازه که پستگرس رو با زبان Rust بازنویسی میکنه. هدفش سازگاری با Postgres 18.3ئه و رو بیش از ۴۶٬۰۰۰ کوئری رگرسیون همون خروجی موردانتظار پستگرسو تولید میکنه. جالب اینه که از نظر دیسک هم با پستگرس سازگاره و میتونه از یه data directory موجود پستگرس ۱۸.۳ بوت بشه.
به گفتهٔ سازنده، ایدهٔ اصلی اینه که تغییردادن پستگرس از داخل راحتتر بشه: رفتار رو پستگرسشکل نگهداری، تستهای واقعی پستگرسو بهعنوان مرجع (oracle) نگه میداری، و از Rust بهعلاوهٔ برنامهنویسی بهکمک هوش مصنوعی برای تغییرات عمیقتر سرور استفاده میکنی.
سازنده میگه یه نسخهٔ جدید و هنوز منتشرنشده رو داره کار میکنه که فعلاً ۱۰۰٪ مجموعهٔ رگرسیون پستگرسو پاس میکنه. این نسخه بهجای مدل «هر اتصال یه پروسه»، مدل «هر اتصال یه thread» داره و روی بار تراکنشی ۵۰٪ سریعتر از پستگرسه.
به ادعای سازنده، همین نسخه رو بارهای تحلیلی حدود ۳۰۰ برابر سریعتر از پستگرسه — حدود ۲ برابر کندتر از ClickHouse رو بنچمارک clickbench — و فکر میکنه بتونه از ClickHouse هم جلو بزنه. البته تأکید میکنه که pgrust هنوز آمادهٔ تولید نیست و برای کارایی هم بهینه نشده.
تو نقشهٔ راه چیزهایی مثل داخلیهای چندنخی پستگرس، connection pooling داخلی، پشتیبانی بهتر از بارهای پرِ JSON، گردشکارهای fork و branch سریع، و «گاردریلهای زمان اجرا» برای کوئریهای بد و SQL تولیدشده با AI دیده میشه. اکستنشنهای موجود مثل PL/Python و PL/Perl هنوز عموماً سازگار نیستن.
نکات کلیدی:
- pgrust پستگرس رو با Rust بازنویسی میکنه و با Postgres 18.3 سازگاره
- رو بیش از ۴۶ هزار کوئری رگرسیون خروجی یکسان با پستگرس میده
- نسخهٔ جدید ۱۰۰٪ رگرسیون پاس میکنه، مدل thread-per-connection داره
- ادعا: ۵۰٪ سریعتر رو تراکنش و حدود ۳۰۰ برابر رو بارهای تحلیلی
- هنوز آمادهٔ تولید نیست




