1 puan yazan GN⁺ 2025-01-25 | 1 yorum | WhatsApp'ta paylaş

Bun 1.2 güncellemesi

  • Bun 1.2, Node.js uyumluluğunu büyük ölçüde iyileştiriyor ve yerleşik S3 nesne depolama API’si ile Postgres istemcisi sunuyor. bun install artık metin tabanlı bun.lock kullanıyor. Express performansını 3 kat artırıyor.

Node.js uyumluluğu

  • Bun, Node.js’e alternatif olarak tasarlandı ve uyumluluğu geliştirmek için Node.js test paketini çalıştırıyor.
  • Dahili API’ler ve hata mesajlarındaki farkları gidererek Node.js modüllerinin testlerinin %90’ından fazlasını geçiyor.

HTTP/2 sunucusu ve diğer modüller

  • node:http2 kullanılarak HTTP/2 sunucusu oluşturulabiliyor; bu, gRPC sunucuları için de gerekli.
  • node:dgram kullanılarak UDP soketleri bağlanıp bağlanabiliyor.
  • node:cluster kullanılarak birden fazla Bun instance’ı oluşturulup işler paralel olarak yürütülebiliyor.
  • node:zlib modülü yerel kodla yeniden yazıldı ve performansı 2 kat artırıldı.

S3 desteği

  • Bun 1.2, dosyaları okumak, yazmak ve silmek için yerleşik S3 API’si sunuyor.
  • Bun’un S3 istemcisi yerel kodla yazıldı ve Node.js’ten 5 kat daha hızlı.

Postgres desteği

  • Bun.sql kullanılarak SQL sorguları çalıştırılabiliyor; bu da SQL injection’ı önlüyor.
  • Bun.sql, diğer Postgres istemcilerinden %50 daha hızlı.

Paket yöneticisi

  • bun install artık metin tabanlı bun.lock kullanıyor; bu da daha hızlı çalışmasını ve birleştirme çakışmalarının azalmasını sağlıyor.
  • package.json içinde yorumlar ve sondaki virgüller kullanılabiliyor.
  • .npmrc dosyası okunarak npm registry yapılandırılabiliyor.

Test çalıştırıcısı

  • Bun, test yazmayı ve çalıştırmayı kolaylaştıran yerleşik bir test çalıştırıcısı sunuyor.

1 yorum

 
GN⁺ 2025-01-25
Hacker News görüşleri
  • Bazı kullanıcılar, harici kütüphanelerin çekirdek kütüphaneye dahil edilmesini sorguluyor ve bunların isteğe bağlı kütüphaneler olarak bırakılmasının daha iyi olacağını düşünüyor

    • Bir runtime, standart kütüphaneye bir şey dahil ederken çok temkinli olmalı; zaten dahil edilmiş olanlar projeyi karmaşık hale getirebilir
  • Bun kullanma deneyiminin çok iyi olduğunu söyleyenler var

    • TypeScript, Jest, React ve Webpack yapılandırması zahmetliydi, ama Bun basit ve etkili
    • Harici kütüphane entegrasyonu hakkında yorum yapamayacağını, ancak genel olarak çok talep edilen şeylere odaklandığını söyleyenler var
  • Varsayılan davranışın fazla sihirli olduğu yönünde görüşler var

    • Örneğin, S3 dosyasını indirmek yerine kullanıcıya presigned URL vermesi şaşırtıcı bir tercih
    • Bu davranışı devre dışı bırakmanın yolu net görünmüyor
  • Yerleşik gelen özelliklerin büyük fark yarattığını söyleyenler var

    • Web API’lerinin V8 ve WebKit runtime’larında varsayılan olarak bulunmasını beğeniyorlar
    • Ancak S3 bunun için fazla ileri gidilmiş olabilir; SQL driver’ları anlaşılabilir olsa da ne kadarının dahil edilmesi gerektiği düşünülmeli
    • Hassas API’ler eklenerek güvenlik sorunları gözden kaçırılıyor olabilir
  • Bir müşterisinin Bun’ı production ortamında kullandığını ve geliştirici deneyiminin çok iyi olduğunu söyleyenler var

    • Geliştirici deneyimi uzun vadede büyük rol oynayabilir
    • Kod tabanı veya süreçler iyi değilse iyi yetenekler kaybedilebilir
  • Bun’ın özellik listesinin çok uzun olduğu ve her şeyin sağlam ve hatasız olup olmadığı konusunda şüphe duyanlar var

    • Proje yönetimi açısından S3 desteğine zaman harcanmasını anlamlı bulmuyorlar
    • Next.js müşterileri kazanmanın büyüme açısından daha iyi bir yol olabileceğini düşünüyorlar
  • Bun 1.2 ile HTML import desteği eklendi

    • Tek bir import ifadesiyle tüm frontend toolchain’in yerini alabiliyor
    • Bunun çok şaşırtıcı ve harika bir özellik olduğunu söyleyenler var
  • Bun’ı ilk kullandıklarında bunun çok şaşırtıcı bir deneyim olduğunu söyleyenler var

    • Webpack veya Vite yapılandırması zahmetliydi, ama Bun doğrudan çalıştı
    • Küçük script’ler için yapılandırma yapmaya değmezdi, ama Bun çok iyi çalıştı
  • Başta Node.js’e alternatif olarak başarısız olacağını düşündüğünü, ama Bun’ı kullandıktan sonra memnun kaldığını söyleyenler var

    • TypeScript ve SQLite DB güncellemelerini yöneten bağımsız script’leri kolayca oluşturabildiğini belirtiyorlar
    • Yeni JS/TypeScript projelerinde de denediğini ve her şeyin hızlı çalıştığını söylüyorlar
  • Kalite güvence sürecinin biçimsel kaldığını düşünenler var

    • Değişikliklerin, build geçmeden merge edilip release edilmiş gibi göründüğünü söylüyorlar
    • Testler kararsızsa regresyonları takip etmenin zor olacağını belirtiyorlar