Deno layihəsi Node.js-ə bənzər təhlükəsiz JavaScript platforması hazırlayır

Mövcuddur layihə buraxılışı Mənə 0.33 verin, JavaScript və TypeScript-də müstəqil proqramların icrası üçün Node.js-ə bənzər platforma təklif edir ki, bu da serverdə işləyən işləyicilərin yaradılması kimi brauzerə bağlanmadan proqramları işə salmaq üçün istifadə edilə bilər. Deno JavaScript mühərrikindən istifadə edir V8, bu da Node.js və Chromium layihəsi əsasında brauzerlərdə istifadə olunur. Layihə kodu yayılır MIT lisenziyası altında. Layihəni Ryan Dahl hazırlayır (Rayan Dahl), Node.js JavaScript platformasının yaradıcısı.

JavaScript üçün yeni iş vaxtının yaradılmasının əsas məqsədlərindən biri daha təhlükəsiz mühit təmin etməkdir. Təhlükəsizliyi yaxşılaşdırmaq üçün V8 mühərriki Rust dilində yazılmışdır ki, bu da aşağı səviyyəli yaddaş manipulyasiyası nəticəsində yaranan boşluqların çoxunu, məsələn, sonradan pulsuz giriş, sıfır göstərici referensiyaları və buferin aşılması kimi boşluqların qarşısını alır. Platforma bloklanmayan rejimdə sorğuları emal etmək üçün istifadə olunur Tokio, həm də Rustda yazılmışdır. Tokio sizə hadisələrə əsaslanan arxitekturaya əsaslanan yüksək performanslı proqramlar yaratmağa imkan verir, çox iş parçacığını dəstəkləyir və asinxron rejimdə şəbəkə sorğularını emal edir.

Əsas xüsusiyyətləri Deno:

  • Təhlükəsizlik yönümlü standart konfiqurasiya. Fayl girişi, şəbəkə və mühit dəyişənlərinə giriş defolt olaraq qeyri-aktivdir və açıq şəkildə aktivləşdirilməlidir;
  • JavaScript-ə əlavə olaraq TypeScript dili üçün daxili dəstək;
  • İcra vaxtı tək müstəqil icra edilə bilən fayl (“deno”) şəklində gəlir. Deno istifadə edərək proqramları işə salmaq kifayətdir yükləyin platforması üçün xarici asılılığı olmayan və sistemdə heç bir xüsusi quraşdırma tələb etməyən, təxminən 10 MB ölçüsündə bir icra edilə bilən fayl;
  • Proqramı işə salarkən, həmçinin modulları yükləmək üçün URL ünvanından istifadə edə bilərsiniz. Məsələn, welcome.js proqramını işə salmaq üçün “deno https://deno.land/std/examples/welcome.js” əmrindən istifadə edə bilərsiniz. Xarici resurslardan kod yerli sistemdə endirilir və keşlənir, lakin heç vaxt avtomatik olaraq yenilənmir (yenilənmə üçün proqramın açıq şəkildə “--reload” bayrağı ilə işləməsi tələb olunur);
  • Tətbiqlərdə HTTP vasitəsilə şəbəkə sorğularının səmərəli işlənməsi; platforma yüksək performanslı şəbəkə proqramlarının yaradılması üçün nəzərdə tutulub;
  • Həm Deno-da, həm də adi veb-brauzerdə icra oluna bilən universal veb proqramlar yaratmaq imkanı;
  • Deno platforması icra müddətindən əlavə paket meneceri kimi də fəaliyyət göstərir və kodun içərisində URL vasitəsilə modullara daxil olmağa imkan verir. Məsələn, modulu yükləmək üçün "https://deno.land/std/log/mod.ts" saytından "import *" kodunu qeyd edə bilərsiniz. URL vasitəsilə xarici serverlərdən endirilən fayllar keşlənir. Modul versiyalarına bağlanma URL daxilində versiya nömrələri göstərilməklə müəyyən edilir, məsələn, “https://unpkg.com/[e-poçt qorunur]/dist/liltest.js";
  • Bu struktura inteqrasiya olunmuş asılılıq yoxlama sistemi (“deno info” əmri) və kodun formatlaşdırılması üçün yardım proqramı (deno fmt) daxildir.
  • Proqram tərtibatçıları üçün təklif etdi əlavə audit və uyğunluq testindən keçmiş standart modullar dəsti;
  • Bütün proqram skriptləri bir JavaScript faylında birləşdirilə bilər.

Node.js-dən fərqlər:

  • Deno npm paket menecerindən istifadə etmir
    və depolara bağlı deyil, modullar URL vasitəsilə və ya fayl yolu ilə ünvanlanır və modulların özləri istənilən vebsaytda yerləşdirilə bilər;

  • Deno modulları müəyyən etmək üçün "package.json" istifadə etmir;
  • API fərqi, Denodakı bütün asinxron hərəkətlər bir söz qaytarır;
  • Deno, fayllar, şəbəkə və mühit dəyişənləri üçün bütün zəruri icazələrin açıq şəkildə müəyyən edilməsini tələb edir;
  • İşləyicilərlə təmin olunmayan bütün səhvlər tətbiqin dayandırılmasına səbəb olur;
  • Deno ECMAScript modul sistemindən istifadə edir və require() funksiyasını dəstəkləmir.

Mənbə: opennet.ru

Добавить комментарий