· kaynak dev.to (home feed)
Amazon neden Kindle için MOBI'yi bıraktı ve tarayıcı içi EPUB dönüşümü nasıl çalışıyor
Amazon'un Send to Kindle hizmeti artık EPUB gerektiriyor ve MOBI kitaplıklarını sahipsiz bıraktı. Bir dev.to yazısı, formatın Palm dönemine uzanan kökenlerini ele alıyor ve tarayıcı tarafındaki dönüştürücülerin dosyaları yüklemeden nasıl yeniden paketlediğini gösteriyor.

Amazon, 2022'nin sonlarından itibaren Send to Kindle hizmeti üzerinden MOBI dosyalarını kabul etmeyi bıraktı ve sonraki firmware güncellemeleri bu aşamalı kaldırma işlemini tamamladı; böylece EPUB, hizmet için gerekli format haline geldi. Bir dev.to makalesinin çıkış noktası da bu: Makale hem formatın neden emekliye ayrıldığını hem de yeni nesil tarayıcı tabanlı dönüştürücülerin okurlara, tek bir baytı bile üçüncü taraf bir sunucuya yüklemeden MOBI kitaplıklarını kurtarma imkanı sunduğunu anlatıyor.
Palm döneminden kalma bir format
dev.to yazısına göre MOBI, Mobipocket tarafından 2000 yılında oluşturuldu ve erken dönem el bilgisayarları (PDA) için tasarlanmış bir depolama şeması olan PalmDOC üzerine inşa edildi; her şey tek parça bir Palm Database (.pdb) container'ında tutuluyordu. Amazon, Mobipocket'ı 2005'te satın aldı ve formatı, ilk Kindle'ın 2007'deki lansmanına yetişecek şekilde AZW, diğer adıyla Kindle Format 7'ye uyarladı.
Makale, formatın modern e-kitaplarla basitçe baş edemediğini savunuyor. MOBI; karmaşık CSS düzenleri, media query'ler, ölçeklenebilir vektör grafikleri (SVG), gömülü modern fontlar, tireleme sözlükleri ve dinamik karanlık mod stilleri için yerel destekten yoksun. Günümüz Kindle'ları kitapları HTML ve CSS'i yerel olarak çeviren KF8 (AZW3) ve KFX motorları üzerinden görüntülüyor; dolayısıyla eski MOBI ayrıştırıcılarını sürdürmek, azalan getiriler karşılığında görüntüleme tutarsızlıkları üretiyordu. IDPF ve W3C tarafından standartlaştırılan EPUB ise temelde, bir Open Container Format ZIP içinde HTML5, CSS3, XML üst verisi ve SVG'den oluşan sıkıştırılmış bir web paketidir; bu da Kindle'ın görüntüleme sisteminin zaten nasıl çalıştığıyla örtüşüyor.
Genel amaçlı çevrimiçi dönüştürücülerin gizlilik bedeli
MOBI dosyaları Kindle'lara e-posta yoluyla gönderilemez hale geldiğinde, makaleye göre milyonlarca okur genel amaçlı dönüştürme sitelerine yöneldi. Makale bu yaklaşımın üç yapısal sorununa dikkat çekiyor: Tüm e-kitap — ki bu özel bir el yazması ya da kişisel bir satın alma olabilir — uzak bir sunucuya yükleniyor; ücretsiz dönüştürücüler dosyaları çoğu zaman geçici cloud bucket'larda bırakıyor ve bunlar açık kalabiliyor ya da backend analitik loglarında görünebiliyor; ayrıca 50MB'lık resimli bir kitabı yükleyip geri indirmek zaman ve bant genişliği israfı.
Dönüşüm tamamen tarayıcı sekmesinde
dev.to makalesi daha sonra WebAssembly, FileReader API ve typed array buffer'lar üzerine kurulu sıfır yükleme (zero-upload) hatasını, pardon hattını anlatıyor: Dosya bir ArrayBuffer'a okunuyor ve JavaScript tabanlı bir parser; veritabanı adı, öznitelikler, kayıt sayısı ve kayıt ofsetlerini kapsayan PDB başlığında ilerleyip MOBI başlığını ve başlık, yazar, yayıncı ve kapak görseli ofsetleri gibi EXTH üst verisini barındıran Record 0'a ulaşıyor. Kalan PalmDOC ile sıkıştırılmış kayıtlar istemci tarafında LZ77 veya Huff/CDIC kullanılarak açılıyor; çıkarılan HTML ve metin kayıtları geçerli bir EPUB container'ında yeniden birleştiriliyor: META-INF/container.xml, ilk sıraya yerleştirilmiş sıkıştırılmamış mimetype girdisi, OEBPS/content.opf manifest'i ve spine'ı, toc.ncx ve nav.xhtml, ayrıca xhtml belgeleri ve görseller. JSZip veya fflate gibi bir istemci tarafı ZIP kütüphanesi sonucu paketliyor ve bir Blob URL onu anında indirilebilir hale getiriyor.
Öne sürülen faydalar gizlilik, hız ve ölçek. Dosyalar hiçbir zaman yerel bellekten çıkmıyor; açma ve yeniden paketleme işlemleri, ağ gidiş-dönüşü olmadan kullanıcının CPU'sunda milisaniyeler içinde çalışıyor; ve tek boyut sınırı, sunucu tabanlı araçların barındırma maliyetlerini kontrol etmek için dayattığı keyfi 10MB veya 25MB limitleri değil, cihazın RAM'i. Yazar, yaklaşımın bir örneği olarak ücretsiz bir tarayıcı tabanlı MOBI'dan EPUB'a dönüştürücüyü öne çıkarıyor ve yazı, kendi PDB parser'ını JavaScript ile gerçekleştirmek isteyen geliştiriciler için aynı zamanda bir eğitim niteliği taşıyor.
Neden önemli
Format kullanımdan kaldırma işlemleri nadiren yanında bir geçiş aracıyla gelir ve Amazon'un bu değişimi; ister bağımsız yayıncılardan alınmış kitaplar, ister Project Gutenberg klasikleri, ister okuma öncesi kopyalar olsun, rafta MOBI dosyası olan herkesi, Send to Kindle bunları kabul etmeden önce bir dönüştürme adımına muhtaç bırakıyor. Tarayıcı içi yaklaşım ayrıca daha geniş bir örüntüyü gözler önüne seriyor: WebAssembly ve modern tarayıcı API'leri birçok belge dönüşümü için sunucu gidiş-dönüşlerini gereksiz hale getirdi; bu da gizliliği bir politika sözünden çıkıp mimari bir özelliğe dönüştürüyor. Geliştiriciler için MOBI'dan EPUB'a giden yol, tarayıcıda eski bir ikili formatı ayrıştırmanın kompakt bir uygulama örneği; okurlar içinse eski kitaplıkların, yayımlanmamış el yazmalarını veya özel satın alımları bilinmeyen bir sunucuya teslim etmeden modernize edilebileceği anlamına geliyor.
- #kindle
- #epub
- #ebook-formats
- #webassembly
- #javascript