psql بدون psql؛ کلاینتِ خالصِ TypeScript که هوش مصنوعی نوشت
خلاصهٔ کاملتر
تو این مقالهٔ مهندسی، Neon میگه دستورِ neonctl psql همیشه کارش این بوده که psql رو رو سیستم پیدا کنه و بهش سوییچ کنه؛ ولی مشکل اینجاست که خیلی وقتها psql اصلاً نصب نیست — مک بهصورت پیشفرض نداره، کانتینرهای لاغرِ لینوکس، رانرهای CI و سندباکسها هم معمولاً ندارن. برای ابزاری که کارش آسونکردنِ دسترسی به Postgresه، دیدنِ خطای command not found تجربهٔ بدیه.
راهحلشون این بود که neonctl خودش «بشه» psql: یه بازپیادهسازیِ واقعی و کاملاً TypeScript از کلاینتِ psql که داخلِ CLI جا گرفته و وقتی psqlِ بومی پیدا نشه خودکار فعال میشه — بدون نصبِ چیزی، بدون وابستگیِ native و با یه باینریِ یکسان رو همهٔ پلتفرمها. نویسنده تأکید میکنه که «همترازیِ کامل» با psql خیلی بزرگتر از چیزیه که بهنظر میاد: خودِ psql حدود ۲۴ هزار خط C داره.
نکتهٔ محوری اینه که این کد رو تقریباً کامل یه ایجنتِ هوش مصنوعی، یعنی Claude Code، نوشته و آدم فقط اسکوپ رو مشخص کرده، diffها رو مرور کرده و تصمیمها رو گرفته. نویسنده میگه بازپیادهسازیِ یه ابزارِ ۳۰سالهٔ حساس با AI دقیقاً همونجاییه که نمیتونی خروجی رو فقط با نگاهکردن باور کنی؛ چون کدِ AI روان و قانعکنندهست و همین خطرناکه، مخصوصاً روی مسیرِ auth و TLS که «درست بهنظر میاد» ولی ممکنه یه تضمین رو بیسروصدا نقض کنه.
برای همین قبل از نوشتنِ کد، اول یه هارنسِ سازگاری ساختن: هارنس اسکریپتهای رگرسیونِ خودِ PostgreSQL و خروجیِ موردانتظارشون رو (پینشده به یه نسخهٔ مشخص) میگیره، همون رو از psqlِ خودشون روی یه Postgresِ واقعی تو کانتینر اجرا میکنه، نویزِ متغیر (پورت، زمان، مسیر) رو پاک میکنه و بعد بایتبهبایت diff میگیره و انتظار داره diff خالی باشه. این چک روی PG 14 تا 18 بهصورت یه گیتِ بلاککننده تو CI اجرا میشه.
تو مسیر به چیزهای جالبی هم رسیدن؛ مثلاً یه بار فکر کردن سایفرِ TLSشون ضعیفتر از psqlِ اصلیه، ولی معلوم شد فرق از رانتایمه: BoringSSLِ Bun مذاکره رو سمتِ AES-128 میبره و OpenSSLِ Node سمتِ AES-256 — هردو امن. جمعبندیِ نویسنده اینه که یه ایجنتِ توانا میتونه یه ابزارِ کهنه رو بازنویسی کنه، ولی اعتماد به نتیجه از هارنسِ تست و بازبینیِ امنیتی میاد، نه از خودِ مدل.
نکات کلیدی:
- Neon یه کلاینتِ psqlِ کاملاً TypeScript رو تو neonctl کار گذاشته تا بدونِ psqlِ بومی و وابستگیِ native، رو هر پلتفرمی کار کنه.
- کد رو تقریباً کامل Claude Code نوشته؛ آدم اسکوپ و بازبینی رو داشته.
- اعتماد به کدِ AI از یه هارنسِ سازگاریِ بایتبهبایت با تستهای خودِ PostgreSQL و یه بازبینیِ امنیتیِ خصمانه میاد، نه از خودِ مدل.




