Deno projesi Node.js'ye benzer güvenli bir JavaScript platformu geliştiriyor

Mevcut proje sürümü bana 0.33 verSunucuda çalışan işleyiciler oluşturmak gibi, uygulamaları bir tarayıcıya bağlanmadan çalıştırmak için kullanılabilen, JavaScript ve TypeScript'te bağımsız uygulama yürütmeye yönelik Node.js benzeri bir platform sunan . Deno bir JavaScript motoru kullanıyor V8Bu aynı zamanda Node.js'de ve Chromium projesini temel alan tarayıcılarda da kullanılır. Proje kodu tarafından dağıtıldı MIT lisansı altında. Proje Ryan Dahl tarafından geliştiriliyor (ryan dahl), Node.js JavaScript platformunun yaratıcısı.

JavaScript için yeni bir çalışma zamanı oluşturmanın ana hedeflerinden biri daha güvenli bir ortam sağlamaktır. Güvenliği artırmak için V8 motoru Rust dilinde yazılmıştır; bu, serbest erişim sonrası erişim, boş işaretçi referansları ve arabellek aşımları gibi düşük seviyeli bellek manipülasyonundan kaynaklanan birçok güvenlik açığını ortadan kaldırır. Platform, istekleri engellemeyen modda işlemek için kullanılır Tokio, ayrıca Rust'ta yazılmıştır. Tokio, çoklu iş parçacığını destekleyen ve ağ isteklerini eşzamansız modda işleyen, olay odaklı mimariye dayalı yüksek performanslı uygulamalar oluşturmanıza olanak tanır.

Ana özellikler Deno:

  • Güvenlik odaklı varsayılan yapılandırma. Dosya erişimi, ağ iletişimi ve ortam değişkenlerine erişim varsayılan olarak devre dışıdır ve açıkça etkinleştirilmelidir;
  • JavaScript'e ek olarak TypeScript dili için yerleşik destek;
  • Çalışma zamanı, tek bir bağımsız yürütülebilir dosya (“deno”) biçiminde gelir. Uygulamaları Deno kullanarak çalıştırmak için yeterli indir platformu için, harici bağımlılığı olmayan ve sistemde herhangi bir özel kurulum gerektirmeyen, yaklaşık 10 MB boyutunda bir yürütülebilir dosya;
  • Programı başlatırken ve modülleri yüklerken URL adreslemeyi kullanabilirsiniz. Örneğin,welcome.js programını çalıştırmak için “deno https://deno.land/std/examples/welcome.js” komutunu kullanabilirsiniz. Harici kaynaklardan gelen kodlar yerel sistemde indirilir ve önbelleğe alınır, ancak hiçbir zaman otomatik olarak güncellenmez (güncelleme, uygulamanın açıkça “--reload” işaretiyle çalıştırılmasını gerektirir);
  • Uygulamalarda ağ isteklerinin HTTP üzerinden verimli bir şekilde işlenmesi; platform, yüksek performanslı ağ uygulamaları oluşturmak için tasarlanmıştır;
  • Hem Deno'da hem de normal bir web tarayıcısında çalıştırılabilen evrensel web uygulamaları oluşturma yeteneği;
  • Deno platformu, çalışma zamanına ek olarak paket yöneticisi görevi de görür ve kod içindeki URL'ye göre modüllere erişmenizi sağlar. Örneğin bir modülü yüklemek için “https://deno.land/std/log/mod.ts” adresinden “import * as log” kodunu belirtebilirsiniz. URL aracılığıyla harici sunuculardan indirilen dosyalar önbelleğe alınır. Modül sürümlerine bağlanma, URL içinde sürüm numaraları belirtilerek belirlenir; örneğin, "https://unpkg.com/"[e-posta korumalı]/dist/liltest.js";
  • Yapı, entegre bir bağımlılık inceleme sistemi ("deno info" komutu) ve kod biçimlendirmeye yönelik bir yardımcı program (deno fmt) içerir.
  • Uygulama geliştiricileri için önerilen ek denetim ve uyumluluk testlerinden geçmiş bir dizi standart modül;
  • Tüm uygulama komut dosyaları tek bir JavaScript dosyasında birleştirilebilir.

Node.js'den farkları:

  • Deno, npm paket yöneticisini kullanmıyor
    ve depolara bağlı değildir, modüller bir URL veya dosya yolu aracılığıyla adreslenir ve modüllerin kendileri herhangi bir web sitesine yerleştirilebilir;

  • Deno, modülleri tanımlamak için "package.json" kullanmaz;
  • API farkı, Deno'daki tüm eşzamansız eylemler bir söz verir;
  • Deno, dosyalar, ağ ve ortam değişkenleri için gerekli tüm izinlerin açık bir şekilde tanımlanmasını gerektirir;
  • İşleyicilere sağlanmayan tüm hatalar uygulamanın sonlandırılmasına yol açar;
  • Deno, ECMAScript modül sistemini kullanır ve require()'u desteklemez.

Kaynak: opennet.ru

Yorum ekle