- ออกแบบมาเพื่อให้สามารถกำหนดฟอร์แมตไบนารีแบบมีโครงสร้างด้วย declarative chain API ช่วยลดความซับซ้อนของการเขียนพาร์เซอร์ด้วยตนเองได้อย่างมาก
- อิงจากนิยามของพาร์เซอร์เพื่อสร้างและคอมไพล์โค้ดสำหรับแยกวิเคราะห์แบบไดนามิกในรันไทม์ มอบประสิทธิภาพการทำงานใกล้เคียงกับการเขียนเองด้วยมือ
- รองรับชนิดข้อมูลหลักที่จำเป็นสำหรับโปรโตคอลไบนารีอย่างกว้างขวาง เช่น จำนวนเต็ม, จำนวนทศนิยม, บิตฟิลด์, สตริง, อาร์เรย์, choice, pointer เป็นต้น (รวมถึงชนิดที่ผู้ใช้กำหนดเองได้)
- สามารถแสดงแพตเทิร์นที่พบบ่อยในการแยกวิเคราะห์เครือข่ายและฟอร์แมตไฟล์ได้โดยตรง เช่น endianness, ฟิลด์ระดับบิต, อาร์เรย์ความยาวแปรผัน
- สามารถจำลองโครงสร้าง TLV(Type-Length-Value) ได้อย่างเป็นธรรมชาติผ่านการผสาน
choice และ array
- รองรับการแยกวิเคราะห์ฟอร์แมตที่อิงออฟเซ็ตอย่าง ELF โดยใช้
pointer, seek, saveOffset เป็นต้น
- รองรับการแยกวิเคราะห์โครงสร้างต้นไม้แบบเรียกซ้ำ ผ่าน named parser(
namely)
- อย่างไรก็ตาม จำเป็นต้องมีเงื่อนไขสิ้นสุดเพื่อป้องกันการเรียกซ้ำไม่สิ้นสุด
- รองรับทั้ง CommonJS และ ESM และปรับแต่งมาสำหรับการแยกวิเคราะห์บนพื้นฐาน Buffer / Uint8Array ในสภาพแวดล้อม Node.js
- เป็นไลบรารีที่เหมาะกับงานตีความข้อมูลระดับล่าง เช่น การวิเคราะห์ไฟล์ไบนารี การแยกวิเคราะห์แพ็กเก็ตเครือข่าย และการจัดการฟอร์แมตไบนารีแบบกำหนดเอง
ยังไม่มีความคิดเห็น