Lanskap browser web telah lama didominasi oleh segelintir pemain utama, membuat setiap pendatang baru menjadi layak diperhatikan. Vaev, yang mendeskripsikan dirinya sebagai mesin HTML/CSS yang super cepat, ringan, dan aman, baru-baru ini muncul dan memicu diskusi signifikan di kalangan komunitas pengembang tentang masa depan teknologi browser, pertimbangan keamanan, dan kelayakan pendekatan alternatif untuk rendering web.
Proyek Vaev dan Tujuannya
Vaev sedang dikembangkan oleh tim yang terdiri dari empat kontributor dan saat ini mendukung subset standar web termasuk sebagian besar jenis tampilan (kecuali grid), perilaku kaskade CSS standar, paginasi menggunakan aturan @page, output cetak-ke-PDF, dan berbagai unit CSS termasuk persentase, var(), dan calc(). Meskipun kemampuan jaringannya saat ini terbatas pada protokol HTTP dan file, proyek ini merupakan upaya ambisius untuk menciptakan mesin browser baru dari awal.
Salah satu pengembang utama proyek ini mengungkapkan bahwa Vaev memiliki aplikasi praktis spesifik di luar sebagai latihan pembelajaran. Ini dikembangkan untuk menjadi inti dari paper-muncher, mesin rendering PDF yang dimaksudkan untuk menggantikan wkhtmltopdf di Odoo, suite perangkat lunak bisnis open-source yang populer. Kasus penggunaan yang terfokus ini membantu menjelaskan penekanan proyek pada kemampuan cetak-ke-PDF dan fitur paginasi.
Dukungan Fitur Vaev Saat Ini:
- Sebagian besar jenis tampilan (kecuali grid)
- Perilaku cascade CSS standar
- Paginasi menggunakan aturan @page
- Output cetak-ke-PDF
- Semua unit CSS, termasuk persentase, var(), dan calc()
- Pemuatan dokumen HTML dan XHTML
- Jaringan dasar (hanya http:// dan file://)
Kontributor Proyek:
- Lou!
- LuneMercier
- Paulo Medeiros
- Sleepy Monax
Kasus Penggunaan Utama:
- Inti dari mesin rendering PDF "paper-muncher"
- Dimaksudkan untuk menggantikan wkhtmltopdf di Odoo
Kontroversi Pemilihan Bahasa
Mungkin diskusi paling hangat seputar Vaev menyangkut implementasinya dalam C++. Banyak komentator mempertanyakan pilihan ini, dengan argumen bahwa browser pada dasarnya adalah kerentanan RCE (Remote Code Execution) secara desain dan bahwa C++ secara historis telah menjadi sumber berbagai masalah keamanan dalam basis kode browser.
Saya tertarik mengapa C++ dipilih untuk ini? Browser terkenal sulit untuk diamankan, mereka secara efektif dimaksudkan untuk menjadi kerentanan RCE! Mengamankan biner C++ itu sulit dan dalam beberapa tahun terakhir telah disebut oleh banyak organisasi dan perusahaan sebagai akar penyebab dari banyak kelas kerentanan keamanan.
Pembela pilihan tersebut menunjukkan bahwa para pengembang kemungkinan memiliki pengalaman C++ yang luas, dan bahwa menulis mesin browser membutuhkan kemahiran bahasa yang mendalam. Beberapa juga mencatat bahwa basis kode menunjukkan praktik C++ modern berkualitas tinggi, dengan smart pointer dan pola RAII yang dapat mengurangi banyak masalah keamanan C++ tradisional.
Tim Vaev telah menanggapi kekhawatiran keamanan dengan mencatat bahwa mereka sedang mengeksplorasi fitur keamanan yang diterapkan compiler di Clang, termasuk atribut pemeriksaan masa pakai dan penggunaan pointer terbatas di luar blok yang ditentukan - pendekatan yang memberikan beberapa manfaat keamanan yang ditemukan dalam bahasa seperti Rust.
Diskusi Smolweb
Kemunculan Vaev telah menghidupkan kembali percakapan berulang tentang standardisasi subset minimal teknologi web. Banyak pengembang menyatakan ketertarikan dalam mendefinisikan standar smolweb - subset terbatas namun konsisten dari standar web yang dapat diimplementasikan oleh browser alternatif tanpa harus mengimplementasikan seluruh kompatibilitas web.
Saran untuk standar hipotetis ini berkisar dari mengadopsi spesifikasi lama seperti HTML 4.01 dan CSS 2.1 hingga fokus pada fitur modern namun esensial seperti CSS Grid sambil menghilangkan kompleksitas yang tidak perlu. Beberapa mengusulkan menggunakan kompatibilitas HTML email sebagai dasar, sementara yang lain menyarankan untuk memulai dengan persyaratan minimal yang diperlukan untuk rendering Markdown.
Diskusi ini menyoroti keinginan yang berkembang untuk teknologi web yang lebih sederhana dan lebih terfokus yang dapat memungkinkan keragaman browser yang lebih besar tanpa memerlukan sumber daya rekayasa yang sangat besar yang saat ini diperlukan untuk bersaing dengan browser dominan.
Tantangan dan Prospek Masa Depan
Membangun mesin browser baru adalah usaha yang luar biasa kompleks, dengan banyak komentator mencatat bahwa browser secara efektif telah menjadi sistem operasi tersendiri. Volume kode yang diperlukan bahkan untuk fungsi dasar (dengan Vaev yang sudah berisi banyak file berisi 500+ baris) menunjukkan mengapa begitu sedikit mesin browser baru yang muncul.
Sementara masa depan langsung Vaev tampaknya berfokus pada rendering dokumen dan pembuatan PDF daripada browsing web secara umum, para pengembang tidak menutup kemungkinan untuk akhirnya mendukung JavaScript dan fitur web yang lebih komprehensif. Arsitektur proyek ini dirancang untuk menjadi lintas platform sejak awal, tidak seperti beberapa proyek browser alternatif lain yang dimulai sebagai implementasi khusus sistem operasi.
Seiring teknologi web terus tumbuh lebih kompleks, proyek seperti Vaev memberikan eksplorasi berharga tentang pendekatan alternatif dan kasus penggunaan khusus. Baik berfokus pada rendering dokumen, standar web minimal, atau peningkatan keamanan, eksperimen ini berkontribusi pada percakapan yang lebih luas tentang arah masa depan teknologi web dan keragaman browser.
Referensi: skift-org/vaev