Rust로 만든 빠른 PDF API — 왜 빠르고, 어떻게 통합하나
RustPDF API성능
대량의 PDF를 매일 처리하는 서비스에서 한 건당 변환 시간이 100ms 차이가 나면 하루 수십만 건의 처리 시간 차이로 이어집니다. All-of-PDF는 백엔드를 Rust로 작성해 속도를 첫 번째 설계 목표로 잡았습니다.
왜 Rust가 빠른가
- GC 부재 — 가비지 컬렉션으로 인한 일시 정지가 없어 응답 지연이 일관됩니다.
- Zero-cost abstraction — 추상화 비용 없이 컴파일 시점에 최적화됩니다.
- 강력한 동시성 모델 — Tokio 런타임 + async/await로 수천 건의 변환을 한 머신에서 병렬 처리합니다.
- 메모리 안전성 — 대용량 PDF를 처리해도 서버가 갑자기 죽지 않습니다. 엔터프라이즈 안정성의 핵심.
벤치마크 (참고용)
동일 머신에서 10페이지짜리 PDF를 1000개 변환한 결과 (PDF → Image, 환경마다 다를 수 있음):
- Python (pdf2image + Pillow): 평균 850ms/파일
- Node.js (pdf-poppler): 평균 720ms/파일
- All-of-PDF (Rust): 평균 180~250ms/파일
API 시작하기
- 회원가입 후 대시보드(/dashboard)에서 API 키를 발급합니다. Free 플랜에서도 월 100회 호출이 가능합니다.
- 발급된 키는 'pk_live_...' 형태로 표시되며, 발급 시점에만 전체 키가 보입니다. 안전한 곳에 저장해 주세요.
- 모든 호출에 'X-API-Key' 헤더로 키를 전달합니다.
예제: PDF를 이미지로 변환
curl -X POST "https://your-domain/api/v1/convert/pdf-to-image" \
-H "X-API-Key: pk_live_..." \
-F "file=@invoice.pdf" \
-F "format=png"예제: 여러 PDF 병합
curl -X POST "https://your-domain/api/v1/convert/merge" \
-H "X-API-Key: pk_live_..." \
-F "files=@page1.pdf" \
-F "files=@page2.pdf" \
-F "files=@page3.pdf"Rate limit과 한도
- Free: 월 100회 (달력월 기준, 매월 1일 0시 초기화)
- Pro: 일 15회 (₩5,900/월)
- Pro+: 일 50회 (₩12,900/월)
- Custom: 무제한 (별도 문의)
에러 처리
- 401 AUTH_REQUIRED — API 키가 누락되었거나 유효하지 않음
- 429 MONTHLY_QUOTA_EXCEEDED — Free 플랜 월 한도 초과
- 429 DAILY_LIMIT_EXCEEDED — Pro/Pro+ 일 한도 초과
- 429 RATE_LIMIT_EXCEEDED — 분당 요청 수 초과 (Retry-After 헤더 참조)
자세한 엔드포인트 목록과 응답 스펙은 /docs 페이지에서 확인할 수 있습니다.