پرش به محتوای اصلی

Topcoat Rust را قادر می سازد تا برنامه های وب سمت سرور را ارائه دهد

دِ رجیستر۱۴۰۵ آبان ۷, پنجشنبه، ساعت ۲۲:۵۷حدود 4 دقیقه مطالعه

Rust guru واکنش‌پذیری برنامه وب را برای بارگذاری سریع‌تر صفحه مجددا تنظیم می‌کند

Rust که برای کاربردهای دیگر محبوب است، معمولا برای توسعه وب استفاده نمی شود. با این حال، این می تواند تغییر کند.

کارل لرچه، مهندس اصلی خدمات وب آمازون که هفته گذشته در کنفرانس مجازی ScyllaDB P99 2026 صحبت می کرد، با وجود هوش مصنوعی در اینجا برای انجام کارهای سنگین، ممکن است برنامه نویسان بخواهند زبان برنامه نویسی را با توجه به عملکرد زمان اجرا و تضمین ایمنی آن در نظر بگیرند.

Lerche آنجا بود تا آخرین پروژه خود، Topcoat را به نمایش بگذارد، چارچوبی برای اجرای برنامه های کاربردی وب که به زبان Rust نوشته شده است.

Lerche شاید بیشتر برای ایجاد توکیو شناخته شده است، که محبوب ترین زمان اجرای Rust ناهمزمان در آن اکوسیستم است.

او به مخاطب مجازی گفت: «سه سال پیش، اگر [من] بیرون رفته بودم و گفته بودم که Rust می‌تواند بهترین زبان برای ساخت اپلیکیشن‌های وب باشد، احتمالا مرا دیوانه خطاب می‌کردید.

توسعه‌دهندگان وب به سمت زبان‌هایی که بیشتر آشنا هستند، گرایش پیدا می‌کنند. این روزها، این به معنای جاوا اسکریپت یا احتمالا روبی است.

تعدادی از چارچوب های وب در حال حاضر از Rust استفاده می کنند. هر دو Leptos و Dioxus Rust را در WebAssembly که اکثر مرورگرها اجرا می کنند، کامپایل می کنند. این رویکرد برای کارهای محاسباتی سنگین عالی است، اگرچه زمان بارگذاری از قبل می تواند یک کشش واقعی باشد.

Topcoat کد Rust شما را در جاوا اسکریپت وب دوستانه تر کامپایل می کند. برای Lerche، جاوا اسکریپت بهترین راه برای تعامل با Document Object Model (DOM) مرورگر است.

کن کولمن، توسعه‌دهنده فرانت‌اند، در یک ویدیوی خلاصه در کانال یوتیوب خود به نام «Code to the Moon» خاطرنشان کرد: «به طور کلی، رویکرد اتخاذ شده توسط هر چارچوب Rust را می‌توان در اکوسیستم دیگری جستجو کرد، معمولا یک اکوسیستم بسیار محبوب.

در سمت سرور راه بروید

لرچه اعتراف کرد که Topcoat برای ساخت برنامه‌های پیچیده در مقیاس مثلا Figma نیست، اما می‌توان آن را به راحتی برای برنامه‌های کاربردی مبتنی بر مرورگر و پایگاه‌داده‌ای استفاده کرد، یعنی ۹۰ درصد از وب امروز.

برخلاف اکثر فریم ورک‌های جاوا اسکریپت کنونی، Topcoat از تعریف فعلی واکنش‌پذیر بودن اجتناب می‌کند، جایی که منطق برنامه هنگام شروع جلسه بر روی مرورگر ریخته می‌شود. در عوض، بیشتر منطق روی سرور اجرا می‌شود و فقط نتایج به مرورگر تحویل می‌شوند (توسعه‌دهندگان همچنان می‌توانند منطق سمت کلاینت را با استفاده از زیرمجموعه‌ای از Rust بنویسند، که Topcoat به طور خودکار در جاوا اسکریپت برای مرورگر کامپایل می‌کند).

این یک ایده قدیمی با فناوری بهتر است. رندر سمت سرور قبل از برنامه نویسی واکنشی است (به بخش سرور آپاچی مراجعه کنید). با رندر سمت سرور، Lerche اذعان کرد، "ممکن است به نظر برسد که ما به روزهای قبلی بازنگری صفحه کامل برای هر کلیک برمی گردیم [اما] شما در واقع می توانید تقریبا تمام آنچه را که به عنوان واکنشی فکر می کنید با رندر سمت سرور دریافت کنید."

اما برنامه نویسی سمت سرور اخیرا باز گشته است، به خصوص برای آن دسته از برنامه نویسانی که از React و سایر فریم ورک ها ناراضی هستند. HTMX، Datastar و Phoenix LiveView همگی صفحات وب را روی سرور رندر می‌کنند و تقریبا تکمیل شده‌اند، آنها را به مرورگر باز می‌گردانند.

لرچه گفت که Topcoat فقط ایده های خود را تغییر می دهد تا به خوبی با Rust مطابقت داشته باشد. وقتی کاربر دکمه ای را در یک صفحه وب می زند، کل صفحه رفرش نمی شود. فقط قطعه HTML مربوط به آن کامپوننت توسط سرور بازگردانده و به روز می شود.

جاوا اسکریپت در جلو، Rust در پشت

پوشش نهایی با رندر کردن همه اجزاء به صورت همزمان، نه یک به یک، زمان بارگذاری را ذخیره می کند. همچنین بارگذاری اطلاعات مانع از بارگذاری صفحه نمی شود. سرور می تواند یک صفحه وب را با متغیرهایی که داده ها در آن جریان می یابد، بازگرداند.

یکی از بزرگ‌ترین سس‌های مخفی که Topcoat دارد این است که به لطف پروژه قبلی Lerche به نام Toasty، یک نقشه‌بردار شی-رابطه‌ای پایگاه داده ناهمزمان مبتنی بر Rust، راهی را برای کامپوننت، که از قبل روی سرور است، فراهم می‌کند تا مستقیما با پایگاه داده صحبت کند.

او گفت: «شما می‌توانید فورا رندر خود را با داده‌ها انجام دهید، بنابراین لازم نیست نحوه سریال‌سازی آن‌ها را بیابید، آن را برای مشتری ارسال کنید، آن‌ها را deserialize کنید».

با فشار دادن داده‌های بارگیری شده به عمق رندر صفحه، سرور می‌تواند سر قالب HTML را فورا برای مشتری ارسال کند و به مرورگر اجازه می‌دهد تا پیش‌بارگیری دارایی‌ها (مانند CSS یا تصاویر) را شروع کند در حالی که سرور بقیه صفحه را رندر می‌کند.

کولمن گفت: "سادگی باورنکردنی است، و این چیزی است که ما در این فضا به شدت از دست داده ایم. من احساس می کنم کسی که واقعا Rust را نمی داند می تواند خیلی سریع با این چیز از زمین خارج شود." او با Lerche موافق بود که Topcoat برای پروژه های وب کوچکتر بهترین است، با توجه به اینکه Topcoat فقط از زیر مجموعه ای از نحو Rust استفاده می کند.

او گفت: «چیزی برای گفتن وجود دارد که دستور Rust کامل را در اختیار داشته باشید. ®

خواندن متن کامل در دِ رجیستربه زبان اصلی، در سایت ناشر باز می‌شود
متن اصلی (انگلیسی)

Topcoat enables Rust to render server-side web apps

Rust guru rejiggers web app reactivity for potentially speedier page loading

همه‌ی اخبار فناوری