Ekstrak PWB
Seret dan lepas atau klik untuk memilih
Pribadi dan aman
Semuanya terjadi di browser Anda. File Anda tidak pernah menyentuh server kami.
Sangat cepat
Tanpa mengunggah, tanpa menunggu. Konversi saat Anda meletakkan file.
Benar-benar gratis
Tidak perlu akun. Tidak ada biaya tersembunyi. Tidak ada trik ukuran file.
Apa itu format PWB?
PWB (Programmer's Workbench)
Format arsip Programmable Web Binary (PWB) adalah format file yang digunakan untuk mengemas, mengompres, dan mendistribusikan kode dan sumber daya aplikasi berbasis web secara efisien. Format ini dikembangkan untuk mengatasi kompleksitas dan ukuran aplikasi web modern yang terus meningkat yang memanfaatkan banyak file JavaScript, CSS, HTML, gambar, dan aset lainnya. Format PWB memungkinkan file-file ini digabungkan menjadi satu arsip biner, mengurangi kebutuhan penyimpanan dan memungkinkan transmisi yang lebih cepat melalui jaringan.
Pada intinya, arsip PWB terdiri dari header file yang diikuti oleh serangkaian entri file. Setiap entri file berisi metadata tentang file individual yang disimpan dalam arsip, seperti nama, ukuran terkompresi dan tidak terkompresi, dan checksum CRC32 untuk verifikasi integritas data. Data file yang sebenarnya disimpan setelah metadata, dan dikompresi menggunakan algoritma Deflate, yang merupakan kombinasi dari pengkodean LZ77 dan Huffman.
Header PWB dimulai dengan angka ajaib 4 byte (0x50574221) untuk mengidentifikasi file sebagai arsip PWB. Setelah angka ajaib adalah nomor versi 2 byte yang menunjukkan versi format PWB. Versi saat ini adalah 1.0. Setelah versi, ada 4 byte yang dicadangkan untuk penggunaan di masa mendatang, diikuti oleh bilangan bulat 8 byte yang mewakili jumlah total entri file dalam arsip.
Setiap entri file dalam arsip PWB dimulai dengan bilangan bulat 4 byte yang menentukan panjang metadata file. Metadata disimpan sebagai objek JSON dan menyertakan properti seperti nama file, tipe MIME, stempel waktu, dan apakah file tersebut dikompresi. Setelah panjang metadata adalah string metadata berkode JSON yang sebenarnya.
Setelah metadata, data file terkompresi disimpan. Data didahului oleh bilangan bulat 8 byte yang menunjukkan ukuran terkompresi data, diikuti oleh bilangan bulat 8 byte lainnya untuk ukuran tidak terkompresi. Data kemudian dikodekan menggunakan algoritma kompresi Deflate, yang dapat secara signifikan mengurangi ukuran aset berbasis teks seperti file JavaScript, CSS, dan HTML.
Salah satu keuntungan utama dari format PWB adalah kemampuannya untuk menyimpan dan mengompresi aset aplikasi web secara efisien. Dengan menggunakan kompresi Deflate, arsip PWB dapat mencapai rasio kompresi yang tinggi untuk file berbasis teks, yang merupakan bagian besar dari aset aplikasi web. Ini mengurangi kebutuhan penyimpanan dan mempercepat transfer file, karena lebih sedikit data yang perlu ditransmisikan melalui jaringan.
Manfaat lain dari PWB adalah dukungannya untuk akses acak ke file individual dalam arsip. Karena metadata setiap file menyertakan offset dan ukurannya dalam arsip, file dapat dengan cepat ditemukan dan diekstrak tanpa perlu mendekompresi seluruh arsip. Ini sangat berguna untuk aplikasi web besar dengan banyak aset, karena memungkinkan pemuatan sumber daya tertentu secara efisien sesuai permintaan.
Untuk membuat arsip PWB, pengembang dapat menggunakan alat seperti PWB Packager, yang tersedia sebagai utilitas baris perintah dan sebagai pustaka untuk penggunaan terprogram. PWB Packager mengambil direktori file aplikasi web sebagai input dan menghasilkan arsip PWB yang berisi semua file dan metadatanya. Pengembang juga dapat menentukan opsi konfigurasi, seperti mengecualikan file atau direktori tertentu, mengatur tipe MIME khusus, dan menyesuaikan tingkat kompresi.
Ketika aplikasi web yang dikemas sebagai arsip PWB disebarkan, server yang menghosting aplikasi dapat menggunakan PWB Converter untuk mengekstrak dan menyajikan file individual sesuai kebutuhan. PWB Converter adalah alat sisi server yang secara efisien mengekstrak file dari arsip PWB dan menyimpannya dalam memori atau pada disk untuk permintaan selanjutnya. Ini memungkinkan server merespons dengan cepat permintaan klien untuk sumber daya aplikasi tertentu tanpa perlu mengekstrak seluruh arsip setiap kali.
Format PWB juga mendukung penandatanganan arsip secara digital untuk memastikan integritas dan keasliannya. Pengembang dapat menyertakan tanda tangan digital di header PWB, yang dapat diverifikasi oleh server atau klien untuk mengonfirmasi bahwa arsip tersebut belum dirusak dan berasal dari sumber yang tepercaya. Ini membantu mencegah modifikasi tidak sah pada kode dan sumber daya aplikasi web, meningkatkan keamanan.
Singkatnya, format arsip PWB adalah alat yang ampuh untuk mengemas, mengompresi, dan mendistribusikan aset aplikasi web secara efisien. Dengan menggabungkan beberapa file menjadi satu arsip dengan metadata dan kompresi, PWB mengurangi kebutuhan penyimpanan, mempercepat transfer file, dan memungkinkan akses acak ke sumber daya individual. Karena aplikasi web terus bertambah besar dan kompleks, format PWB membantu pengembang mengoptimalkan aplikasi mereka untuk waktu pemuatan yang lebih cepat dan kinerja yang lebih baik.
Kompresi file mengurangi redundansi sehingga informasi yang sama membutuhkan lebih sedikit bit. Batas atasnya ditentukan oleh teori informasi: untuk kompresi lossless, batasnya adalah entropi sumber (lihat teorema pengkodean sumber Shannon source coding theorem dan makalah aslinya tahun 1948 “A Mathematical Theory of Communication”). Untuk kompresi lossy, kompromi antara laju bit dan kualitas dijelaskan oleh teori rate–distortion.
Dua pilar: pemodelan dan pengodean
Sebagian besar kompresor memiliki dua tahap. Pertama, sebuah model memprediksi atau mengekspos struktur dalam data. Kedua, sebuah coder mengubah prediksi tersebut menjadi pola bit yang hampir optimal. Keluarga pemodelan klasik adalah Lempel–Ziv LZ77 (1977) dan LZ78 (1978) mendeteksi substring berulang lalu memancarkan referensi alih-alih byte mentah. Di sisi pengodean, pengodean Huffman (lihat makalah aslinya 1952) memberikan kode lebih pendek untuk simbol yang lebih mungkin. Pengodean aritmetika dan range coding lebih halus lagi dan mendekati batas entropi, sementara Asymmetric Numeral Systems (ANS) modern mencapai rasio serupa dengan implementasi berbasis tabel yang cepat.
Apa yang sebenarnya dilakukan format umum
DEFLATE (dipakai oleh gzip, zlib, dan ZIP) menggabungkan LZ77 dengan pengodean Huffman. Spesifikasinya bersifat publik: DEFLATE RFC 1951, pembungkus zlib RFC 1950, dan format file gzip RFC 1952. Gzip dibingkai untuk streaming dan tidak menyediakan akses acak. Gambar PNG menstandarkan DEFLATE sebagai satu-satunya metode kompresi (maksimal jendela 32 KiB) menurut spesifikasi PNG