Portable Folder Format (PFF) | |
---|---|
Jenis File | Archive |
Ekstensi File | .pff |
Charset | UTF-8 |
Tahun terebit | 2024 |
Versi | 1.0 |
Portable Folder Format (PFF) atau Format Folder Portabel adalah sebuah format file uji coba yang dapat mengumpulkan beberapa file dan folder menjadi satu file seperti zip. Namun bedanya, PFF tidak melakukan kompresi sama sekali seperti yang dilakukan zip. File PFF dapat digunakan untuk menyimpan berbagai jenis file, seperti dokumen, gambar, video, musik, dsb.
Singkat Cerita
Pada awalnya, saya membuat PFF untuk Sarabande sebagai format untuk menyimpan isi Album. Album dalam Sarabande adalah sebuah file yang menyimpan kumpulan lagu, suara, dan konfigurasi instrumen. Sebelum terpikir untuk membuat PFF, saya merencanakan untuk menggunakan format archive seperti zip. Namun format zip biasanya memiliki kompresi, yang mana untuk mengimplementasikannya sendiri cukup sulit. Sebenarnya ada library C++ yang dapat meng-dekompresi file zip. Akhirnya karena bingung mau memilih yang mana, saya putuskan untuk membuat format saya sendiri, tidak lain dan tidak bukan adalah Portable Folder Format, disingkat PFF.
Tujuan dibuatnya PFF saya buat jelas. Yang pertama, untuk menghindari kompresi, entah itu kompresi lossless atau bukan. Sistem kompresi memang baik adanya, namun khusus untuk format ini, saya mau yang benar-benar hanya Format Folder Portabel saja, tanpa sistem kompresi, password, dsb. Yang kedua yaitu untuk membuat sebuah format yang terstruktur dengan baik. Struktur dalam PFF dibuat sesederhana mungkin, dan dapat diedit dengan mudah menggunakan editor hex.
Program pengompres dan pen-dekompres file PFF pertama kali saya buat menggunakan bahasa pemrograman Lua di sekitar bulan Oktober 2024. Saya memang terbiasa untuk menggunakan Lua untuk mengetes, merakit, dan menguji coba suatu program sebelum saya tulis dalam C++. Namun pada akhirnya, saya putuskan agar file Album Sarabande menggunakan folder biasa saja. Urusan portabilitas dan kompresi bisa diserahkan kepada pengguna sendiri. Singkat cerita, perjalanan pengembangan PFF berakhir disitu.
Sebenarnya saya ada rencana untuk mengembangkan format ini lagi, tetapi belum pasti. Untuk sementara, saya menulis blog tentang PFF ini sebagai referensi.
Struktur File
Struktur File PFF
PFF │ ├─Magic Number50 6F 72 ... 30 0D 0A
├─Alamat File │ │ │ ├─Alamat │ │ │ │ │ ├─Mulai Alamat File1C
│ │ ├─Alamat File │ │ ├─Mulai Posisi File1F
│ │ └─Posisi File │ │ │ ├─Alamat │ ├─Alamat │ ┆ ...dst... │ ├─Pembatas Alamat dan Isi File03
└─Isi File │ ├─Isi ├─Isi ├─Isi ┆ ...dst...
03
dalam UTF-8/ASCII adalah End of Text. Kode tersebut digunakan untuk memisahkan Alamat dan Nama File dengan Isi File (sebagai Pembatas Alamat dan Isi File).PFF memiliki 3 struktur utama, yaitu Magic Number ("Angka Ajaib"), Alamat File, dan Isi File. Setiap file PFF memiliki panjang struktur yang berbeda beda menyesuaikan dengan banyaknya file dan faktor lainnya, terkecuali bagian Magic Number yang panjangnya tetap, yaitu 27 karakter.
Magic Number
Magic Number atau Angka Ajaib adalah kumpulan karakter pada awal suatu file yang digunakan untuk identifikasi jenis file (selain dari ekstensi file) dan biasanya panjangnya tetap. Magic Number PFF memiliki panjang tetap 27 karakter, yang isinya Portable Folder Format 1.0
dengan angka heksadesimal 50 6F 72 74 61 62 6C 65 20 46 6F 6C 64 65 67 72 20 46 6F 72 6D 61 74 20 31 2E 30 0D 0A
. Setiap file PFF harus memiliki Magic Number. Jika tidak, program unzipper PFF akan mengeluarkan error.
Alamat File
Bagian Alamat File (File Addresser) menyimpan alamat dan nama file yang terdapat pada Isi File. Alamat File berisi beberapa Alamat, dan Alamat memiliki dua bagian, yaitu Alamat File dan Posisi File. Alamat File (bagian dari sebuah Alamat) menyimpan informasi alamat folder dalam direktori. Posisi File menyimpan letak isi file yang terdapat pada bagian Isi File. Bagian ini dapat memiliki panjang yang bervariasi.
1C
dalam UTF-8/ASCII adalah File Seperator dan 1F
adalah Unit Seperator. Kode tersebut digunakan untuk menunjukan permulaan Alamat File dan Posisi File.1C
, 1F
, ataupun 03
.Isi File
Bagian terakhir dan biasanya terpanjang dari sebuah file PFF adalah Isi File. Isi File menyimpan isi dari masing-masing file yang terdapat pada Alamat File. Isi dari masing-masing file tidak dipisahkan oleh semacam seperator, namun sudah ditentukan di bagian Alamat File. Sama seperti Alamat File, bagian ini dapat memiliki panjang yang bervariasi.
Tidak ada komentar:
Posting Komentar