“Firecrawl이 개발한 Rust 기반 다형식 문서 파서”
기업 및 개발자 커뮤니티에서는 다양한 문서 포맷을 일관된 형태로 가공하는 요구가 급증하고 있습니다. 특히 LLM(대형 언어 모델) 기반 애플리케이션에서는 마크다운 형식이 프롬프트 입력 및 출력의 표준으로 자리 잡았습니다. Firecrawl이 공개한 AnyDoc은 Word·PowerPoint·Excel·PDF·EPUB 등 14종 파일을 단일 파이프라인으로 변환하고, 평균 4 ~ 5 ms라는 뛰어난 처리 속도를 제공합니다. 이 포스트에서는 AnyDoc의 설치 환경, 핵심 사용 방법, 그리고 실제 프로젝트에 적용할 때 기대할 수 있는 주요 장점을 체계적으로 설명합니다.

설치 환경
AnyDoc은 Rust 기반 크레이트와 다양한 언어 바인딩을 제공합니다. 따라서 프로젝트 특성에 따라 다음 중 하나를 선택하여 설치할 수 있습니다.
- Rust Crate –
cargo add anydoc명령어 하나로 Rust 프로젝트에 바로 포함 가능. - Node.js – npm 레지스트리
@firecrawl/anydoc를npm i @firecrawl/anydoc로 설치. - Python – PyPI 패키지
firecrawl-anydoc를pip install firecrawl-anydoc로 배포. - WebAssembly –
@firecrawl/anydoc-wasm를 npm 혹은 CDN 으로 로드하여 브라우저 환경에서도 활용 가능. - CLI –
npx @firecrawl/anydoc로 즉시 실행 가능한 커맨드라인 툴 제공.
설치 요구 조건은 다음과 같습니다.
- 운영체제: Windows 10 이상, macOS 12 이상, 주요 Linux 배포판 (Ubuntu 20.04 이상)
- Rust ≥ 1.70 (Crate 사용 시)
- Node.js ≥ 18 (npm 바인딩 사용 시)
- Python ≥ 3.9 (PyPI 패키지 사용 시)
- WASM 실행을 위한 최신 브라우저 (Chrome ≥ 106, Firefox ≥ 102 등)
플랫폼 별 자세한 바이너리 배포는 GitHub Release 페이지에서 확인해주세요.
주요 사용 방법
1) 파일 → Markdown 변환 (CLI)
npx @firecrawl/anydoc convert ./sample.docx -o ./output.md
위 명령은 입력 파일 형식을 자동 감지하고, GitHub‑Flavored Markdown(GFM) 형태로 변환합니다. 옵션 --detect-format 를 명시하면 바이트 기반 포맷 탐지를 강제할 수 있습니다.
2) Node.js API
import anydoc from "@firecrawl/anydoc";
const markdown = await anydoc.convert(Buffer.from(fileData), {
// optional: hint format (\"docx\", \"pdf\" 등)
formatHint: "pdf",
// OCR 옵션 (PDF에 텍스트가 없을 경우)
ocr: true
}
);
console.log(markdown);비동기 convert 함수는 Uint8Array 혹은 Buffer 형태의 바이너리를 입력으로 받아 Promise<string> 형태의 마크다운을 반환합니다.
3) Python Wrapper
from firecrawl_anydoc import AnyDoc
converter = AnyDoc()
markdown = converter.convert(open("sample.xlsx", "rb").read())
print(markdown)Python 인터페이스는 내부적으로 Rust FFI를 호출하므로, 속도 차이가 거의 없으며 convert_error 예외를 통해 상세 오류 원인을 파악할 수 있습니다.
브라우저 내에서 파일을 직접 변환하므로 서버 비용을 절감하고, 사용자 프라이버시를 강화할 수 있습니다.
4) LLM 에이전트 연동 (Skill)
Firecrawl이 제공하는 Skill을 통해 Claude Code·Codex·Cursor 등 LLM 플랫폼에 바로 연결합니다.
npx skills add firecrawl/anydoc
이후 에이전트는 “문서 업로드 → 마크다운 변환 → 프롬프트 전달”의 흐름을 자동화합니다.
데모 URL
실제로 사용을 해보고 싶다면 아래의 링크에서 직접 파일을 올려서 Markdown으로 문서의 결과를 확인할 수 있습니다.
https://firecrawl.github.io/anydoc


핵심 특장점
- 초고속 처리 – 100개의 실험 문서(14 포맷) 기준 Median 4.4 ms, 최고 81/100 점수.
- 단일 파이프라인 –
bytes → format detection → parser → Document 모델 → GFM serializer → markdown구조로, 포맷 추가 시 중앙 로직만 수정하면 됩니다. - 전문 서식 보존 – 제목, 하이퍼링크, 목록, 표, 이미지, 첨부 파일 등 모든 일반 문서 요소를 100 %에 가깝게 유지합니다.
- 자동 포맷 감지 – 파일 헤더 바이트를 분석해 14종 포맷을 정확히 식별합니다. 사용자는
formatHint로 힌트를 제공해 오탐지를 최소화합니다. - 다중 배포 모델 – 로컬 바이너리, 클라우드 API, WASM, LLM Skill 등 5가지 배포 옵션 제공.
- 세분화된 오류 처리 –
ConvertError열거형에Unsupported,Malformed,Encrypted,ResourceLimit등 7가지 구체적 원인 포함. - 보안·프라이버시 – 파일은 메모리 내에서만 처리되며, OCR 옵션을 제외하면 외부 네트워크 호출을 수행하지 않습니다.
성능 벤치마크
다음 표는 AnyDoc과 주요 경쟁 도구(LibreOffice, pandoc, docling, mammoth, unstructured)의 평균 변환 속도와 정확성을 비교한 결과입니다.
| 툴 | 평균 처리 시간(ms) | 정확도 점수(100점 만점) | 지원 포맷 수 |
|---|---|---|---|
| AnyDoc | 4.4 | 92 | 14 |
| LibreOffice (CLI) | 41.2 | 78 | 12 |
| pandoc | 38.7 | 81 | 10 |
| docling | 55.3 | 74 | 9 |
| mammoth | 62.1 | 70 | 8 |
| unstructured | 48.9 | 76 | 11 |
AnyDoc은 평균 속도에서 10배 이상 우수하며, 특히 docx와 pdf 포맷에서 88 ~ 92점의 높은 정확도를 기록합니다.
활용 시나리오
- LLM 기반 문서 요약 서비스
사용자가 업로드한 다양한 포맷 파일을 AnyDoc으로 마크다운 변환 후, 프롬프트에 삽입해 자동 요약·핵심 키워드 추출을 수행할 수 있습니다. - 멀티 포맷 변환 마이크로서비스
Docker 기반 API 서버에 AnyDoc을 래핑하여POST /convert엔드포인트 제공. 파일 업로드 → 변환 → JSON 형태 마크다운 반환 구조. - 클라이언트‑사이드 문서 편집기
WASM 모듈을 웹 에디터에 내장해 사용자는 로컬 파일을 바로 마크다운 형태로 미리보기하고, 서버 전송 전 검증할 수 있습니다. - 보안 규제 대응
암호화된 파일은ConvertError::Encrypted로 즉시 차단하고, 로그에 상세 원인만 기록해 GDPR·CCPA 요구사항을 충족합니다.
핵심 요약
- AnyDoc은 14개 포맷을 4 ~ 5 ms 안에 GFM 마크다운으로 변환하는 초고속 Rust 엔진입니다.
- CLI·Node·Python·WASM·Skill 등 다중 언어·플랫폼 지원으로 개발 흐름에 손쉽게 통합 가능합니다.
- 포맷 자동 감지·세분화된 오류·보안·프라이버시 설계가 어플리케이션 신뢰성을 높일수 있습니다.
- 벤치마크 결과, 기존 도구 대비 10배 이상 빠른 속도와 10~15점 높은 정확도를 제공하고 있습니다.
맺음말
Firecrawl AnyDoc은 현대 대규모 문서 인프라에서 가장 핵심이 되는 변환 단계—”문서 → 마크다운“을 단일 라이브러리로 최적화하였습니다.
초고속 처리와 포맷 보존 능력, 그리고 풍부한 배포 옵션은 LLM 에이전트, 클라우드 마이크로서비스, 브라우저 기반 워크플로우 등 다양한 사용 사례에 즉시 적용할 수 있는 경쟁력을 갖고 있다고 생각합니다. 특히 보안 요구가 높은 기업 환경에서도 메모리 내 처리와 상세 오류 코드를 통해 투명한 운영이 가능하므로, 차세대 자동화·지식베이스 구축 프로젝트에서 활용되면 매우 유용할 것 같습니다.






답글 남기기