![]() | |
Orijinal yazar(lar) | Ryan Dahl |
---|---|
Geliştirici(ler) | Various |
İlk yayınlanma | 13 Mayıs 2018 (6 yıl önce) (2018-05-13)[1] |
Güncel sürüm | 2.2.4[2] ![]() |
Önizleme sürümü | 0.32.0 / 3 Şubat 2020 (5 yıl önce) (2020-02-03)[3] |
Programlama dili | TypeScript,JavaScript,Rust,C++ |
İşletim sistemi | GNU/Linux,macOS,Microsoft Windows |
Tür | Run-time environment |
Resmî sitesi | deno![]() |
Kod deposu | ![]() |
Deno,V8 JavaScript motoruna ve ek olarakRust programlama diline dayananJavaScript veTypeScript 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.[4] 2018'de Dahl tarafından "Node.js Hakkında 10 Pişman Olduğum Şey" konuşmasında duyuruldu.[5] Deno, ayrı bir paket yönetim sistemi gerektirmez, bunun yerine tek birdosya içinde hem çalışma ortamı hem depaket yöneticisi rolünü üstlenir.[6][7]
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ındaNode.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.[8]
Deno, modern programcı için verimli ve güvenli birbetik ortamı olmayı hedeflemektedir.[6] 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. Denoweb sunucuları oluşturmak, bilimsel hesaplamalar yapmak için kullanılabilir.
Deno ve Node.js,Google Chrome'da da kullanılanGoogle'ınV8 JavaScript motorunda oluşturulmuş çalışma ortamıdır. Her ikisinin de dahili olay döngüleri vardır vekomut dosyalarını çalıştırmak için komutsatı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.[6]
Aşağıdakiler, okuma / yazma / ağ izinleri (sandbox modu) olmadan temel bir Deno komut dosyasını çalıştırır:
denorunmain.ts
İlgili izni göstermek için açık komutlara gerekir:
denorun--allow-read--allow-netmain.ts
Komut dosyasının bağımlılık ağacını incelemek içininfo
alt komutunu kullanın:
denoinfomain.ts
Deno'daki temel birmerhaba 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. BirUnixcat 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(leti=0;i<args.length;i++){constfilename=args[i];// Komut satırı bağımsız değişkenleri ele alır.constfile=awaitopen(filename);//Filename adıyla dönen osyalar open fonksiyonu ile açılır.awaitcopy(stdout,file);// Asenkron olarak kopyalanır.}