← Radar

Konu: Web1 dk okuma

upm: 250 KB'lık, bağımlılıksız küçük bir npm alternatifi

Bu neden önemli?

Paket yöneticisi seçimi (npm, pnpm, bun) her projenin ilk kararı. upm, 'hızlı olmak için Rust ya da Go şart mı?' sorusuna küçük ve saf JavaScript bir cevap veriyor; ayrıca güvenlik odaklı varsayılanlarıyla dikkat çekiyor.

upm nedir?

upm, npm kayıt defterindeki paketleri kuran bir paket yöneticisi. Farkı boyutu: proje sayfasına göre diskte yaklaşık 250 KB, sıkıştırılmış hali 85 KB civarında. Saf JavaScript (TypeScript ile yazılmış), Node.js’in kendi modüllerini kullanıyor ve dışarıdan bağımlılığı yok. Lisansı MIT.

Syntax Weekly’de en başta konuşulan haber buydu: “küçük ve hızlı bir npm”.

Neler yapıyor?

  • Mevcut projeyle uyum: .npmrc ayarlarını okuyor; package-lock.json, pnpm-lock.yaml ve bun.lock dosyalarını destekliyor. Yani başka bir yöneticiyle kurulmuş projeye geçmek için kilit dosyasını baştan üretmene gerek kalmıyor.
  • Hız: Proje, kurulum hızının Rust ile yazılmış alternatiflere yakın olduğunu söylüyor. Bu bir üretici beyanı; kendi projende ölçmeden bel bağlama.
  • Programlanabilir: Komutlar, JavaScript içinden çağırılabilen fonksiyonlar olarak da kullanılabiliyor.
  • Güvenlik varsayılanı: Varsayılan olarak yayınlanmasının üzerinden en az 1 gün geçmemiş sürümleri kurmuyor. Yeni yayınlanan zararlı bir paket sürümüne hemen bulaşmamak için yaygınlaşan bir yöntem.

Sınırlar

Proje henüz kararlı değil, geliştiricileri de kullanmadan önce sınırlamalara bakmanı öneriyor:

  • Yalnızca kayıt defteri, workspace ve tarball bağımlılıkları var; Git ya da yerel klasör bağımlılığı yok.
  • Workspace’ler tek bir ağaç gibi çalışıyor, tek pakete filtreli kurulum yok.
  • Peer bağımlılık desteği sınırlı.

Bu yüzden şimdilik denemek ve merak etmek için güzel; üretimdeki bir projenin ana paket yöneticisi yapmak için erken.

Düşün

  • Bir araç için “küçük ve bağımlılıksız olması” senin için ne kadar önemli?
  • Yeni yayınlanan sürümleri bir gün bekletmek, hangi riskleri azaltır, hangisini artırır?
Kaynaklar (3, İngilizce)

Kendi cümlelerimizle yazılmış bir özettir, çeviri değildir. Tüm kaynaklar yukarıda.