Binary-parser
바이너리 데이터 고성능 파싱용 JavaScript 파서 빌더
About
- 구조화된 바이너리 포맷을 선언형 체인 API로 정의하기 위해 설계되어 수작업 파서 작성의 복잡성을 크게 줄임
- 파서 정의를 기반으로 런타임에 파싱 코드를 동적 생성·컴파일해, 수동 구현에 가까운 실행 성능 제공
- 정수·부동소수점·비트 필드·문자열·배열·choice·pointer 등 바이너리 프로토콜에 필요한 핵심 타입을 폭넓게 지원 (사용자 정의 유형도 가능)
- endianness, bit 단위 필드, 가변 길이 배열 등 네트워크·파일 포맷 파싱에 자주 등장하는 패턴을 직접 표현 가능
- choice와 array 조합을 통해 TLV(Type-Length-Value) 구조를 자연스럽게 모델링 가능
- pointer, seek, saveOffset 등을 활용해 ELF 같은 오프셋 기반 포맷 파싱 지원
- named parser(namely)를 통해 재귀 구조 트리 파싱 가능
- 단, 무한 재귀 방지를 위한 종료 조건 필요
See also
- JavaScript
- Node.js
- Binary data
- Parser