تینبیس: سوپابیس محلی بدون داکر
خلاصهٔ کاملتر
تینبیس (tinbase) خودش رو یه جایگزین سازگار با سوپابیس معرفی میکنه که بهجای استک محلی رسمی — ۱۲ کانتینر داکر و حدود ۲.۳ گیگابایت نصب — توی یه فایل اجرایی ۵۸ مگابایتی جا میشه و با npx tinbase start تقریباً توی دو ثانیه بالا میاد. پروژه متنبازه و با لایسنس MIT منتشر شده.
نکتهٔ اصلیش سازگاری در سطح پروتکله: گرامر کوئری PostgREST (فیلترها، منابع تودرتو و RPC)، جریانهای احراز هویت GoTrue، Storage API و پروتکل Phoenix برای Realtime همه پیادهسازی شدن، و درستیشون با اجرای SDK رسمی روی تینبیس تأیید شده. یعنی supabase-js رو بدون تغییر کد بهش وصل میکنی:
const { data } = await supabase
.from('todos')
.select('*, author:users(name)')
.eq('done', false)زیر کاپوت هم پستگرس واقعی نشسته: میتونی بین پستگرس ۱۷ توکار (حدود ۵۹ مگابایت رم) و PGlite روی WASM انتخاب کنی، و RLS دقیقاً مثل سوپابیس میزبانیشده رفتار میکنه — هر درخواست با claimهای JWT خودت اجرا میشه، پس سیاستهای auth.uid() بدون دستکاری کار میکنن. مایگریشنها هم از همون مسیر supabase/migrations/ خونده میشن، پس بعداً میشه همون فایلها رو به سوپابیس میزبانیشده منتقل کرد.
معماریش روی یه هندلر ساده از نوع Request به Response بنا شده که درخواستها رو بین سرویسها پخش میکنه. به گفتهٔ سازندهها همین طراحی باعث میشه کل بکاند — از جمله دیتابیس — بتونه داخل یه تب مرورگر و بهصورت in-process اجرا شه؛ هدف اولیهٔ پروژه هم دقیقاً همین بوده. کنارش داشبوردی شبیه Supabase Studio روی مسیر /_/، ادج فانکشنها، وبهوکهای دیتابیس، کران و یه زیرمجموعه از صف pgmq هم بدون نیاز به اکستنشن اضافه در دسترسه.
نکات کلیدی:
- سازگاری کامل با supabase-js بدون تغییر کد اپلیکیشن
- یه فایل اجرایی ۵۸ مگابایتی، بدون داکر و بدون نیاز به Node یا npm روی ماشین مقصد
- انتخاب بین پستگرس ۱۷ توکار و PGlite روی WASM
- پشتیبانی از RLS، ادج فانکشن، وبهوک، کران و صف بهصورت بومی
- امکان اجرای کل بکاند داخل مرورگر، با انتشار متنباز و لایسنس MIT




