پلت فرم جاوا اسکریپت Deno 1.16 منتشر شد که برای اجرای مستقل (بدون استفاده از مرورگر) برنامه های کاربردی نوشته شده در جاوا اسکریپت و تایپ اسکریپت طراحی شده است. این پروژه توسط نویسنده Node.js رایان دال توسعه داده شده است. کد پلتفرم به زبان برنامه نویسی Rust نوشته شده و تحت مجوز MIT توزیع شده است. بیلدهای آماده برای لینوکس، ویندوز و macOS آماده شده است.
این پروژه شبیه به پلتفرم Node.js است و مانند آن از موتور جاوا اسکریپت V8 استفاده می کند، اما به گفته نویسنده Node.js، تعدادی از ایرادات معماری قبلی خود را اصلاح می کند و در تفاوت های ظریف زیر با آن تفاوت دارد. :
- استفاده از Rust بهعنوان زبان اصلی، که به گفته توسعهدهندگان، خطر آسیبپذیریهای مرتبط با مدیریت حافظه سطح پایین (سرریز بافر، استفاده پس از رایگان و غیره) را کاهش میدهد.
- Deno از مدیر بسته npm و package.json استفاده نمیکند و از کاربر میخواهد ماژولها را با مشخص کردن یک URL یا مسیر به ماژول مورد نصب نصب کند. با این حال، این پروژه چندین ابزار برای ساده کردن کار با ماژول های شخص ثالث ارائه می دهد.
- برنامهها بهطور جداگانه در جعبههای شنی اجرا میشوند و به شبکه، متغیرهای محیطی و سیستم فایل، بدون مجوزهای اعطا شده، دسترسی ندارند.
- این معماری توانایی ایجاد برنامه های کاربردی وب جهانی را فراهم می کند که می توانند هم در سیستم Deno و هم در یک مرورگر معمولی کار کنند.
- استفاده از "ES Modules" و عدم پشتیبانی نیازمند()؛
- هر گونه خطا در یک برنامه وب که توسط برنامه نویس مدیریت نمی شود منجر به خاتمه اجباری آن می شود.
- پشتیبانی از TypeScript علاوه بر جاوا اسکریپت.
- حجم کامل پلتفرم آماده 84 مگابایت (در یک آرشیو فشرده - 31 مگابایت) در قالب یک فایل اجرایی می باشد.
- این کیت سیستمی برای حل وابستگی ها و قالب بندی کد ارائه می دهد.
- روی برنامه های کاربردی با کارایی بالا تمرکز کنید.
Dino با استفاده از پلتفرم توکیو که برای ساخت برنامه های کاربردی با کارایی بالا بر اساس معماری رویداد محور طراحی شده است، درخواست ها را به روشی غیر مسدود کننده پردازش می کند. همچنین جالب است که سرور HTTP داخلی Deno در TypeScript در بالای سوکت های TCP بومی پیاده سازی شده است که تأثیر مثبتی بر عملکرد عملیات شبکه دارد.
یادداشت های نسخه جدید:
- بهینه سازی عملکرد (4 پچ)؛
- رفع بیش از 15 خطا، به ویژه، مشتری TLS اکنون از HTTP/2 پشتیبانی می کند، زیرسیستم رمزگذاری از علائم رمزگذاری اضافی و غیره پشتیبانی می کند.
- بیش از دوجین نوآوری، که از میان آنها میتوان به تثبیت زیرسیستمهای آزمایش شده قبلی Deno.startTls و Deno.TestDefinition.permissions، بهروزرسانی موتور V8 JS به نسخه 9.7 و پشتیبانی از تبدیلهای React 17 JSX اشاره کرد.
منبع: opennet.ru