Neden Bazel?

Sorun bildirme Kaynağı görüntüleme Nightly · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Bazel, sektör lideri bir ekosistemde birden fazla dil, depo ve platformu destekleyen entegre test özelliğine sahip hızlı, doğru ve genişletilebilir bir derleme aracıdır.

Bazel hızlıdır

Bazel, her derleme komutunun tam olarak hangi giriş dosyalarına ihtiyacı olduğunu bilir. Böylece, yalnızca giriş dosyası grubu her derleme arasında değiştiğinde yeniden çalıştırarak gereksiz çalışmalardan kaçınır. Derleme komutlarını aynı bilgisayarda veya uzak derleme düğümlerinde mümkün olduğunca paralel olarak çalıştırır. Derleme yapısı izin veriyorsa aynı anda binlerce derleme veya test komutu çalıştırabilir.

Bu işlem, bellekte, diskte ve varsa uzak derleme çiftliğinde birden fazla önbelleğe alma katmanı tarafından desteklenir. Google'da, rutin olarak %99'un üzerinde önbellek isabet oranları elde ediyoruz.

Bazel doğru

Bazel, ikili programlarınızın yalnızca kendi kaynak kodunuzdan derlenmesini sağlar. Bazel işlemleri ayrı korumalı alanlarda çalışır ve Bazel, derlemenin her giriş dosyasını izler, yalnızca gerektiğinde ve her zaman derleme komutlarını yeniden çalıştırır. Bu sayede ikili dosyalarınız güncel kalır ve aynı kaynak kodunun her zaman aynı ikili dosyayı oluşturması sağlanır.

Sonu gelmeyen make clean çağrılarına ve aslında hiç derlenmemiş kaynak kodda çözülmüş olan hayali hatalara son verin.

Bazel genişletilebilir

Bazel'i çeşitli projelerde özel ihtiyaçlarınıza göre özelleştirmek için kendi kurallarınızı ve makrolarınızı yazarak Bazel'in tüm gücünden yararlanın.

Bazel kuralları, Python alt kümesi olan şirket içi programlama dilimiz Starlark'ta yazılmıştır. Starlark, kural yazma işlemini çoğu geliştiricinin erişimine sunarken ekosistem genelinde kullanılabilecek kurallar da oluşturur.

Entegre test

Bazel'in entegre test çalıştırıcısı, yalnızca yeniden çalıştırılması gereken testleri bilir ve bunları paralel olarak çalıştırmak için uzaktan yürütme özelliğini (varsa) kullanır. Bir testi binlerce kez hızlı bir şekilde çalıştırmak için uzaktan yürütme özelliğini kullanarak kesintileri erken tespit edin.

Bazel, test sonuçlarını merkezi bir konuma yüklemek için olanaklar sağlar. Böylece, CI'de veya bireysel geliştiriciler tarafından test sonuçlarının etkili bir şekilde paylaşılmasını kolaylaştırır.

Birden fazla dil desteği

Bazel, C++, Java, Kotlin, Python, Go ve Rust gibi birçok yaygın programlama dilini destekler. Tek bir dilin idiomatik derleme aracıyla sınırlı kalmadan aynı Bazel çağrısında birden fazla ikili dosyayı (ör. arka uç, web kullanıcı arayüzü ve mobil uygulama) derleyebilirsiniz.

Çok deposu desteği

Bazel, birden fazla konumdan kaynak kodu toplayabilir: Bağımlılıklarınızı tedarikçiye göndermeniz gerekmez (ancak bunu yapabilirsiniz). Bunun yerine Bazel'i kaynak kodunuzun veya önceden oluşturulmuş yapıların (ör. bir git deposu veya Maven Central) konumuna yönlendirebilirsiniz. Gerisi Bazel'e aittir.

Çok platformlu destek

Bazel, Linux, macOS, Windows ve Android dahil olmak üzere birden fazla platform için aynı anda proje derleyebilir. Ayrıca, derlemeyi başka bir platformda çalıştırırken bir platform için kod oluşturmak üzere güçlü çapraz derleme özellikleri sunar.

Geniş ekosistem

Sektör liderleri Bazel'i seviyor ve Bazel'i kullanan ve katkıda bulunan büyük bir geliştirici topluluğu oluşturuyor. Bazel'in kullanabileceği danışmanlık ve SaaS teklifleri dahil olmak üzere araç, hizmet ve dokümanlar bulun. Açık kaynak yazılım depolarımızda programlama dilleri için destek gibi uzantıları keşfedin.