Ana içeriğe geç

Deno

Okunuşu
dino
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/deno

Kısaca

Deno, sistem erişimini izin verilene kadar kapalı tutan ve kendi araçlarıyla gelen, açık kaynaklı bir JavaScript ve TypeScript çalışma ortamıdır.

Deno nedir?

Deno, JavaScript ve TypeScript'i tıpkı Node.js gibi bir sunucuda ya da geliştiricinin bilgisayarında çalıştıran bir çalışma ortamıdır (runtime). Node.js'in ilk yaratıcısı Ryan Dahl tarafından, 2018'de Node'da pişman olduğu tasarım kararlarını anlattığı bir konuşmanın ardından başlatıldı. Node.js gibi Google'ın V8 motoru üzerinde çalışır, ama geri kalanı Rust ile yazılmıştır; 1.0 sürümü 2020'de, Deno 2 ise 2024'te çıktı.

Deno'yu üç fikir ayırır. TypeScript dosyalarını ayrı bir derleme adımı olmadan doğrudan çalıştırır. Varsayılan olarak güvenlidir: bir script, siz --allow-net ya da --allow-read gibi bayraklarla izin verene kadar dosya okuyamaz, ağ bağlantısı açamaz ve ortam değişkenlerini göremez; tıpkı bir telefon uygulamasının izin istemesi gibi. Ayrıca tek bir çalıştırılabilir dosya günlük araçları içerir: bir biçimlendirici (deno fmt), bir linter (deno lint), bir test çalıştırıcı (deno test) ve bir script'i bağımsız bir programa dönüştüren bir derleyici (deno compile).

Deno; fetch, Request, Response ve Web Streams gibi web standardı API'leri tercih eder, bu yüzden aynı kodun büyük kısmı tarayıcılarda da çalışır. Paketler npm'den npm: import'larıyla ya da bir package.json dosyasıyla, Deno ekibinin başlattığı ve JavaScript ile TypeScript modüllerine yönelik bir kayıt defteri olan JSR'den ya da doğrudan bir URL'den gelebilir. Web sunucuları ve API'ler, script'ler ve komut satırı araçları ile Supabase'in Edge Functions'ı ve Deno'nun kendi barındırma servisi Deno Deploy dahil serverless edge fonksiyonları için kullanılır.

En sık sorulan soru, Deno'nun Node.js'ten nasıl ayrıldığıdır. İkisi de V8 üzerinde büyük ölçüde aynı JavaScript'i çalıştırır ve Deno 2'den beri çoğu npm paketi ile node:fs gibi Node.js yerleşik modülleri Deno'da da çalışır; yani farklar varsayılanlardadır. Node.js her script'e sisteme tam erişim verir ve biçimlendirme ile lint işini ayrı araçlara bırakır; Deno ise izin ister ve bu araçları içinde getirir. Aradaki fark daraldı: yeni Node.js sürümleri tipleri silerek birçok TypeScript dosyasını çalıştırabiliyor ve isteğe bağlı bir izin modeli sunuyor; Node.js ise daha büyük ekosistemini ve en geniş barındırma desteğini koruyor.

Önemli noktalar

  • Deno, Node.js'in ilk yaratıcısının V8 ve Rust üzerine kurduğu bir JavaScript ve TypeScript çalışma ortamıdır.
  • Script'ler, izin verilene kadar dosyalara, ağa ya da ortam değişkenlerine erişemez.
  • TypeScript doğrudan çalışır; biçimlendirici, linter, test çalıştırıcı ve derleyici yerleşiktir.
  • Deno 2'den beri çoğu npm paketi ve Node.js yerleşik modülü çalışır.
  • Node.js'ten, çalıştırdığı JavaScript'le değil, esas olarak varsayılanlarıyla ayrılır.

Örnek

Deno'da küçük bir web sunucusutypescript
// server.ts: TypeScript runs directly, with no build step
Deno.serve({ port: 8000 }, (req: Request) => {
  const { pathname } = new URL(req.url);
  return Response.json({ path: pathname, runtime: "Deno" });
});

// Network access must be granted explicitly:
//   deno run --allow-net server.ts
// Without the flag, Deno asks at the prompt, or refuses in CI.

// Built-in tools, no extra packages:
//   deno fmt   deno lint   deno test   deno compile --allow-net server.ts

Sık sorulan sorular

Deno ile Node.js arasındaki fark nedir?

İkisi de JavaScript'i V8 motoruyla çalıştırır ve Deno çoğu npm paketini çalıştırabilir. Deno TypeScript'i doğrudan çalıştırır, siz izin verene kadar dosya ve ağ erişimini engeller, bir biçimlendirici, linter ve test çalıştırıcı içerir; Node.js ise daha büyük bir ekosisteme sahiptir ve script'lere varsayılan olarak tam erişim verir.

Deno npm paketlerini kullanabilir mi?

Evet. Deno 2'den beri onları npm:express gibi bir npm: önekiyle import edebilir ya da Node.js'teki gibi bir package.json dosyasında listeleyebilirsiniz. Node.js'in nadiren kullanılan iç yapılarına dayanan az sayıda paket çalışmayabilir.

Deno, Node.js'ten daha hızlı mı?

İkisi de V8 üzerine kurulu olduğu için çoğu web iş yükünde benzer performans gösterir ve kıyaslamalar işe göre değişir. Seçimi ham hızdan çok araçlara, güvenlik varsayılanlarına ve ihtiyaç duyduğunuz kütüphanelere göre yapmak genellikle daha mantıklıdır.

İlgili sayfalar

Kaynaklar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar