Deno, V8 JavaScript motoruna ve ek olarak Rust programlama diline dayanan JavaScript ve TypeScript için bir çalıştırma ortamıdır . Node.js'in yaratıcısı Ryan Dahl tarafından güvenlik ve üretkenliğe odaklanılarak geliştirilmeye başlanmıştır.1 2018'de Dahl tarafından "Node.js Hakkında 10 Pişman Olduğum Şey" konuşmasında duyuruldu.2 Deno, ayrı bir paket yönetim sistemi gerektirmez, bunun yerine tek bir dosya içinde hem çalışma ortamı hem de paket yöneticisi rolünü üstlenir.34
Deno, JSConf EU 2018'de Ryan Dahl tarafından "Node.js Hakkında 10 Pişman Olduğum Şey" adlı konuşmasında duyuruldu.5 Ryan konuşmasında Node.js ile ilk tasarım kararlarından pişmanlıklarından bahsetti, API tasarımında Promises kullanmama, eski GYP inşa sisteminin kullanımı, node_modules ve package.json dosya uzantıları ve V8 problemleri gibi birçok konuya değindi.6
Deno, modern programcı için verimli ve güvenli bir betik ortamı olmayı hedeflemektedir.7 Deno, Node.js'ye benzer şekilde, engelleme sürümleriyle birlikte bir dizi non blocking-IO çekirdeği yardımcı programı sağlayarak olay odaklı mimariye vurgu yapar. Deno web sunucuları oluşturmak, bilimsel hesaplamalar yapmak için kullanılabilir.
Deno ve Node.js, Google Chrome'da da kullanılan Google'ın V8 JavaScript motorunda oluşturulmuş çalışma ortamıdır. Her ikisinin de dahili olay döngüleri vardır ve komut dosyalarını çalıştırmak için komut satırı arabirimleri ve çok çeşitli sistem yardımcı programları sağlar.
Bu arada, Deno temelde Node.js'den şu yönleriyle ayrışmaktadır.8 :
Aşağıdakiler, okuma / yazma / ağ izinleri ( sandbox modu) olmadan temel bir Deno komut dosyasını çalıştırır:
deno run main.ts
İlgili izni göstermek için açık komutlara gerekir:
deno run --allow-read --allow-net main.ts
Komut dosyasının bağımlılık ağacını incelemek için info
alt komutunu
kullanın:
deno info main.ts
Deno'daki temel bir merhaba dünya programı aşağıdakine benzer (Node.js'de olduğu gibi):
console.log("Hello world");
Deno, tarayıcıda bulunmayan Deno'ya özgü API'lerin çoğu için genel ad alanı sağlar. Bir Unix cat programı aşağıdaki gibi uygulanabilir:
/* cat.ts */
/* Aşağıdaki fonksiyonlar Deno namespace'inden devralınır. */
const { stdout, open, copy, args } = Deno;
for (let i = 0; i < args.length; i++) {
const filename = args[i]; // Komut satırı bağımsız değişkenleri ele alır.
const file = await open(filename); //Filename adıyla dönen osyalar open fonksiyonu ile açılır.
await copy(stdout, file); // Asenkron olarak kopyalanır.
}
Orijinal kaynak: deno. Creative Commons Atıf-BenzerPaylaşım Lisansı ile paylaşılmıştır.
Ne Demek sitesindeki bilgiler kullanıcılar vasıtasıyla veya otomatik oluşturulmuştur. Buradaki bilgilerin doğru olduğu garanti edilmez. Düzeltilmesi gereken bilgi olduğunu düşünüyorsanız bizimle iletişime geçiniz. Her türlü görüş, destek ve önerileriniz için iletisim@nedemek.page