PaperPilot: Kamu Kaynaklı Bir PDF Motoru'nun Sırrı

PaperPilot: Kamu Kaynaklı Bir PDF Motoru'nun Sırrı
audio-thumbnail
PaperPilot: Kamu Kaynaklı Bir PDF Motoru'nun Sırrı
0:00
/0

PaperPilot: Kamu Kaynaklı Bir PDF Motoru'nun Sırrı

PDF'ler, günümüzde bilgi alışverişi için vazgeçilmez bir format haline geldi. Ancak bu belgeleri yönetmek, işlemek ve bu süreçte gizliliği korumak genellikle karmaşık ve güvenli olmayan çözümlere ihtiyaç duyuyor. İşte bu noktada PaperPilot, Rust ve WebAssembly (WASM) ile geliştirilmiş, tamamen yerel çalışan ve buluta hiçbir veri göndermeyen bir PDF motoru olarak dikkat çekiyor. Peki PaperPilot, sıradan bir PDF araçlarından nasıl farklı oluyor? Teknolojik yapısı ve geliştirme yaklaşımı ile nasıl bir devrim çağrıştırıyor?

PaperPilot Nedir ve Nasıl Çalışır?

PaperPilot, PDF'leri birleştirmek, bölütmek, sıkıştırmak, OCR (optik karakter tanıma) işlemek, sayfaları döndürmek veya PII (Kişisel Bilgi) taraması yapmak gibi işlemleri yerel olarak gerçekleştiren, Rust ile geliştirilmiş bir PDF araç kümesidir. En dikkat çekici özelliği ise her türlü işlem, kullanıcı makinesinde veya tarayıcıda gerçekleştiriliyor. Bu sayede belgelerin dışarıya gönderilmesi, gizlilik riskleri veya bulut servislerine bağlılık söz konusu değil.

PaperPilot, aynı çekirdek motoru hem CLI (komut satırı), hem MCP (Model Context Protocol), hem de tarayıcıda çalışan WASM sürümünde kullanıyor. Bu, hem geliştiriciler hem de AI asistanlar için tutarlı ve güvenli bir deneyim sunuyor.

Teknoloji Arka Planı: Rust ve WASM'nin Gücü

PaperPilot'ın arka planında Rust dili ve WebAssembly (WASM) teknolojisi yatıyor. Bu kombinasyon, hem performans hem de güvenliği bir araya getiriyor.

Rust: Hız, Güvenlik ve Yerel Çalışma

Rust, sistem programlama dillerinden biri olmakla birlikte, özellikle performans ve bellek yönetimi açısından öne çıkıyor. PaperPilot’ın tüm motoru Rust ile yazılmış, bu sayede herhangi bir C++ runtime veya Chromium bağımlılığı olmadan çalışabiliyor. Bu, uygulamanın hafif ve hızlı olmasını sağlıyor.

PaperPilot, özellikle lopdf, pdf_oxide ve rten (Rust’ta çalışan bir PaddleOCR kütüphanesi) gibi güvenilir, açık kaynaklı kütüphanelerle destekleniyor. Bu kütüphaneler, PDF'lerin doğrudan okunması, yazılması ve analiz edilmesi gibi temel işlemleri hızla gerçekleştiriyor.

WebAssembly (WASM): Tarayıcıda Süreksizlik Olmadan Çalışmak

Bir PDF aracıyı sadece komut satırında değil, aynı zamanda tarayıcıda da çalıştırmak isteyen PaperPilot, WebAssembly (WASM) ile bu hedefe ulaşmış. WASM, tarayıcıların içinde yüksek performanslı C/C++ veya Rust kodlarını çalıştırabilmesini sağlar.

PaperPilot’ın web sürümü, dosyaların tarayıcı hafızasında işlemesi üzerine kurulu. Bu, kullanıcıların hiçbir zaman PDF dosyalarını sunucuya göndermeden, sadece tarayıcı içinde işlem yapabilmesini sağlıyor. Tarayıcı konsolunu açıp "Network" sekmesine bakarsanız, hiçbir dosya yükleme veya veri aktarımı görmediğinizi fark edeceksiniz.

Çok Yönlü Kullanım: CLI, MCP, REST, WASM, Masaüstü

PaperPilot’ın güçlü yanı, tek bir Rust çekirdeğini farklı ortamlarda kullanabilmesidir. Aynı motor, hem komut satırı, hem de AI asistanlarına entegre olabilecek MCP (Model Context Protocol) sunucusu, hem de REST API ile entegre edilebilen bir sunucu olarak çalıştırılabiliyor.

CLI ile Komut Satırı İşlemleri

Komut satırından PaperPilot’ı kullanmak oldukça basit:

# PDF'leri birleştir
paperpilot merge --inputs doc1.pdf doc2.pdf --output merged.pdf

# PDF'yi sıkıştır
paperpilot compress --input in.pdf --quality 75 --output compressed.pdf

# Sayfaları döndür
paperpilot rotate --input in.pdf --pages 1,3-5 --angle 90 --output out.pdf

Bu tür komutlar, otomatikleştirilmiş işlem akışları veya betikler içinde kullanılmak üzere idealdir.

MCP ile AI Asistanlarına Entegre Etme

PaperPilot, Claude Desktop, Cursor gibi AI asistanlarına MCP sunucusu olarak entegre edilebilir. Bu sayede kullanıcılar, "Bu iki PDF'yi birleştir ve sıkıştır" gibi bir komut verdiğinde, PaperPilot otomatik olarak işlemi yerel olarak gerçekleştirir.

Açıklama dosyasında verilen adımlar şu şekildedir:

  1. paperpilot-mcp dosyasını releases sayfasından indirin.
  2. claude_desktop_config.json dosyasına aşağıdaki gibi ekleyin: json { "mcpServers": { "paperpilot": { "command": "/path/to/paperpilot-mcp" } } }
  3. Claude’yi yeniden başlatın ve komutu deneyin.

Bu entegrasyon, PaperPilot’ın yalnızca bir araç değil, aynı zamanda AI agentler için bir işlevsel uzantı olduğunu gösteriyor.

Tarayıcıda Sıfır Kurulum: WASM Sürümü

PaperPilot’ın en ilgi çekici yönlerinden biri de web sayfasında doğrudan çalışmasıdır. usepaperpilot.com adresine gidip, bir PDF dosyasını yüklediğinizde, tüm işlemler tarayıcı hafızasında gerçekleşir.

Web sayfasında bir widget eklemek için basit bir <script> etiketi yeterlidir:

<script src="https://cdn.usepaperpilot.com/embed.js" data-tools="merge,compress,ocr"></script>
<div id="paperpilot-widget"></div>

Bu yöntem, kullanıcıların herhangi bir kurulum yapmadan PDF araçlarını kullanabilmesini sağlar.

REST API ile Geliştiriciler İçin Esneklik

PaperPilot, yerel bir REST API sunucusu da sağlar. paperpilot serve --port 7823 komutu ile başlatıldığında, localhost:7823 adresinde bir API sunucusu açılır. Bu API ile Python, Node.js veya n8n gibi dillerdeki uygulamalardan PDF işlemleri yapılabilir:

curl -X POST http://localhost:7823/api/v1/pdf/merge \
-H "Content-Type: application/json" \
-d '{"inputs": ["a.pdf", "b.pdf"], "output": "out.pdf"}'

Swagger docs sayfası (http://localhost:7823/docs) ile API'nin tüm endpoint'leri kolayca incelenebilir.

Masaüstü Uygulaması: Tauri + Svelte ile Hızlı ve Görsel

PaperPilot’ın masaüstü sürümü, Tauri ve Svelte ile geliştirilmiştir. Tauri, Rust ile çalışan bir backend ile birlikte, uygulamaları küçük boyutlarda ve hızlı başlatılabilir hale getirir. Svelte ise dinamik kullanıcı arayüzleri oluşturmak için ideal bir framework'tür.

Bu yapı, PaperPilot’ın hem görsel hem de işlevsel bir masaüstü uygulaması olmasını sağlar. Uygulamada PDF'i görüntülemek, sayfaları işaretlemek, karşılaştırmak veya değişiklikleri kaydetmek gibi işlemler kolayca yapılabiliyor.

Geliştirme ve Geliştirme Planı

PaperPilot, açık kaynaklı bir proje olup, Apache 2.0 lisansı altında yayınlanmıştır. Geliştirici topluluğu için açık kaynak olması, hata raporları, yeni araç istekleri ve doküman düzeltmeleri gibi katkılar için her zaman açıktır.

Gelecek sürümlerde ise daha gelişmiş özellikler sunulacak:

  • PDF → Markdown / HTML / JSON dönüşümü (v0.7)
  • PDF → Word / Excel / PowerPoint dönüşümü (v0.8)
  • Şifreleme, imzalama, kırmızı etiketleme, anotasyonlar (v0.9)
  • PDF/A, Bates numaralandırması, düzleştirme, karşılaştırma (v1.0)

Sonuç: Gizlilik, Performans ve Esneklik Üstüne Bir Çözüm

PaperPilot, PDF yönetiminde gizlilik, performans ve esneklik arasındaki dengenin mükemmel bir örneğini sunuyor. Rust’ın hızı ve güvenliği, WASM’ın tarayıcı içi esnekliği, MCP’nin AI entegrasyonu, REST API’sinin geliştirici dostluğu birleşiyor.

Bu yapı, hem bireysel kullanıcılar hem de kurumsal projeler için sıkıştırılmış, gizli ve kolayca entegre edilebilir bir PDF motoru halini alıyor. Kamu kaynaklı bir çözüm olarak PaperPilot, hem teknik hem de etik açıdan büyük bir ilerleme temsil ediyor.

Bir PDF aracı artık sadece belge yönetimi değil, aynı zamanda veri güvenliği ve AI ile entegre çalışma dünyasının bir parçası haline geldi. PaperPilot, bu dönüşümün öncüsü olmaya devam ediyor.