피드로 돌아가기
lopdf vs pdfium in Rust — Why I Chose the Smaller One
Dev.toDev.to
Backend

PDF 구조 제어를 위한 Pure Rust 기반 lopdf 채택 및 Rendering 분리 설계

lopdf vs pdfium in Rust — Why I Chose the Smaller One

hiyoyo2026년 4월 24일2intermediate

Context

PDF 뷰어가 아닌 문서 조작 도구 개발을 위한 라이브러리 선정 과정 분석. Google PDFium의 높은 추상화 수준으로 인한 Raw Object 접근 불가 및 대규모 바이너리 크기가 제약 사항으로 작용.

Technical Solution

  • Raw Object Tree 접근을 통한 Metadata 제거 및 구조 재구성 목적의 lopdf 선정
  • Pure Rust 구현체 사용으로 외부 의존성 제거 및 Binary Footprint 최소화 달성
  • Rendering 기능 부재 해결을 위한 macOS PDFKit Swift Sidecar 도입을 통한 책임 분리
  • Manipulation은 lopdf가 담당하고 Rendering은 OS 네이티브 엔진이 처리하는 Hybrid 구조 설계
  • PDF Dictionary 및 Stream에 직접 접근하여 Author 정보 삭제 등 저수준 제어 로직 구현

1. 라이브러리 선정 시 제공하는 API의 추상화 수준이 도메인 요구사항(조작 vs 조회)과 일치하는지 확인

2. 단일 라이브러리로 모든 기능을 해결하기보다 기능별 전문 엔진을 분리하는 Sidecar 패턴 검토

3. 바이너리 크기 최적화가 중요한 환경에서는 Pure Rust와 같은 Native 구현체 우선 고려

원문 읽기