การเปิดตัวล่าสุดของ Nokolexbor ซึ่งเป็นตัวแยกวิเคราะห์ HTML5 ประสิทธิภาพสูงสำหรับ Ruby ที่สัญญาว่าจะมีการปรับปรุงความเร็วอย่างมีนัยสำคัญเมื่อเทียบกับ Nokogiri ได้จุดประเด็นการอภิปรายสำคัญเกี่ยวกับความสมดุลระหว่างประสิทธิภาพและความปลอดภัยในเครื่องมือพัฒนาเว็บสมัยใหม่
การแลกเปลี่ยนระหว่างความปลอดภัยและประสิทธิภาพ
ในขณะที่ Nokolexbor โอ้อวดตัวชี้วัดประสิทธิภาพที่น่าประทับใจ โดยแสดงให้เห็นว่าการประมวลผลตัวเลือก CSS เร็วกว่า Nokogiri ถึง 997 เท่า ชุมชนนักพัฒนาได้แสดงความกังวลอย่างมากเกี่ยวกับแนวทางการรักษาความปลอดภัย ประเด็นหลักคือการที่ Nokolexbor ใช้ libxml 2.11 แบบในตัวสำหรับการรองรับ XPath ซึ่งเปิดตัวในเดือนเมษายน 2023 วิธีการจัดการการพึ่งพานี้ได้รับการตรวจสอบอย่างละเอียดจากนักพัฒนาที่ให้ความสำคัญกับความปลอดภัย โดยเฉพาะอย่างยิ่งเมื่อพิจารณาถึงประวัติของช่องโหว่ด้านความปลอดภัยที่พบบ่อยใน libxml
เกือบทุกการปล่อย libxml ครั้งที่สองมาพร้อมกับ CVE ดังนั้นผมจึงสงสัยว่ามีแผนที่จะอัปเกรดเวอร์ชัน libxml หรือไม่ เนื่องจากไม่ได้ใช้ libxml ของระบบ (เหมือนกับ Nokogiri)
การเปรียบเทียบประสิทธิภาพเทียบกับ Nokogiri:
- การแยกวิเคราะห์ HTML: เร็วกว่า 5.22 เท่า (487.6 เทียบกับ 93.5 รอบต่อวินาที)
- ตัวเลือก CSS: เร็วกว่าสูงสุด 997.87 เท่า (50798.8 เทียบกับ 50.9 รอบต่อวินาที)
- การทำงานแบบผสมผสาน: เร็วกว่า 142.11 เท่า (7437.6 เทียบกับ 52.3 รอบต่อวินาที)
ความกังวลเกี่ยวกับกิจกรรมการพัฒนา
สถานะการดูแลรักษาโครงการก็กลายเป็นประเด็นถกเถียง โดยสมาชิกในชุมชนสังเกตเห็นว่าไม่มีการอัปเดตมานานกว่า 7 เดือน แม้ว่านักพัฒนาบางคนจะโต้แย้งว่าความต้องการในการแยกวิเคราะห์ HTML5 ไม่ได้เปลี่ยนแปลงอย่างมีนัยสำคัญในช่วงเวลานี้ แต่ผลกระทบด้านความปลอดภัยของการคงไว้ซึ่งการพึ่งพาที่ล้าสมัยยังคงเป็นความกังวลที่สำคัญ โดยเฉพาะอย่างยิ่งเมื่อเทียบกับแนวทางของ Nokogiri ซึ่งรักษาตารางการอัปเดตความปลอดภัยอย่างเข้มงวดสำหรับการใช้งาน libxml
แพลตฟอร์มที่รองรับ:
- Linux: x86_64 (glibc เวอร์ชัน 2.17 ขึ้นไป)
- macOS: x86_64 และ arm64
- Windows: ucr64, mingw32 และ mingw64
ทางเลือกอื่น
การอภิปรายในชุมชนได้เน้นย้ำถึงทางเลือกหลายอย่างในระบบนิเวศ รวมถึงโซลูชันที่ใช้ Rust เช่น Selma ซึ่งใช้ตัวแยกวิเคราะห์ lol_html ของ Cloudflare และการใช้งาน Python เช่น selectolax ที่ใช้ความสามารถของ Lexbor เช่นกัน ทางเลือกเหล่านี้แสดงให้เห็นถึงระบบนิเวศที่กำลังเติบโตของโซลูชันการแยกวิเคราะห์ HTML ประสิทธิภาพสูงในภาษาโปรแกรมต่างๆ โดยแต่ละตัวมีแนวทางของตัวเองในการสร้างความสมดุลระหว่างประสิทธิภาพและการพิจารณาด้านความปลอดภัย
สถานการณ์นี้เน้นย้ำถึงความท้าทายที่กว้างขึ้นในระบบนิเวศการพัฒนาซอฟต์แวร์: ความจำเป็นในการสร้างสมดุลระหว่างการปรับปรุงประสิทธิภาพล้ำสมัยกับแนวปฏิบัติด้านความปลอดภัยที่ยั่งยืน ในขณะที่เครื่องมือการพัฒนายังคงพัฒนาต่อไป การตอบสนองของชุมชนต่อ Nokolexbor เป็นเครื่องเตือนใจว่าความเร็วเพียงอย่างเดียวไม่เพียงพอที่จะรับประกันการนำไปใช้อย่างแพร่หลายในสภาพแวดล้อมการผลิต
แหล่งอ้างอิง: Nokolexbor: High-performance HTML5 parser for Ruby based on Lexbor