Lexbor - ไลบรารีตัวเรนเดอร์ HTML แบบโอเพนซอร์ส
(github.com/lexbor)- โปรเจกต์สำหรับพัฒนาเอนจินเบราว์เซอร์ตัวใหม่
- เอนจินเบราว์เซอร์ที่มีอยู่เดิมพัฒนาด้วย C++ จึงมีปัญหาทั้งขนาดใหญ่ ช้า และไม่ยืดหยุ่น
- Lexbor พัฒนาด้วย C โดยมีเป้าหมายด้านความสามารถในการพกพา, การทำงานแบบโมดูล, ความเร็ว, ความเป็นอิสระ และการปฏิบัติตามมาตรฐาน
- จุดเด่นหลักของ Lexbor:
- ประกอบด้วยโมดูลหลากหลาย เช่น HTML, CSS, Encoding, URL, Punycode, Unicode เป็นต้น
- สามารถใช้งานแต่ละโมดูลเป็นไลบรารีอิสระได้
- ไม่มีการพึ่งพาภายนอก
- พอร์ตไปยังแพลตฟอร์มต่าง ๆ ได้ง่าย
- รองรับ C99 และมีความเร็วสูงมาก
- คุณสมบัติของโมดูล HTML:
- รองรับสเปก HTML5 อย่างสมบูรณ์
- มีความสามารถสำหรับจัดการ element และ attribute
- รองรับการพาร์ส HTML แบบแตกส่วน (
innerHTML) - รองรับการพาร์สแบบเป็นชังก์
- ผ่านการทดสอบกับหน้า HTML จริงมากกว่า 200 ล้านหน้า
- มีวิธีการพาร์ส 2 แบบคือ
DocumentและParser - มีฟีเจอร์ตรวจจับ encoding อัตโนมัติ
- รองรับการพาร์ส attribute ของแท็กและ CSS style ภายในแท็ก
<style>
- คุณสมบัติของโมดูล CSS:
- รองรับโมดูล CSS Syntax อย่างสมบูรณ์
- รองรับ selector และ style sheet tree (CSSOM)
- Lexbor มีแพ็กเกจไบนารีสำหรับระบบปฏิบัติการหลากหลาย เช่น CentOS, Debian, Fedora, RHEL, Ubuntu เป็นต้น
- บน macOS สามารถติดตั้งผ่าน Homebrew และ MacPorts ได้
- ซอร์สโค้ดสามารถบิลด์ได้ด้วย CMake
liblexborเป็นไลบรารีเดี่ยวที่รวมทุกโมดูลไว้ และมีไลบรารีliblexbor-{module}แยกตามแต่ละโมดูล- มี binding และ wrapper สำหรับหลายภาษา เช่น Elixir, Crystal, Python, D, Ruby เป็นต้น
4 ความคิดเห็น
เพราะ C++ ช้าเลยสินะ c...
ว้าว...ไม่เคยคิดเลยว่า C++ จะช้า โลกแบบนั้นก็ดูเป็นอีกแบบจริง ๆ
สุดยอดมาก
ในหน้าแรกมีแค่ข้อความว่า "เอนจินเบราว์เซอร์ที่มีอยู่เดิมพัฒนาด้วย C++ เลยมีปัญหาว่าทั้งใหญ่ ช้า และไม่ยืดหยุ่น..." ก็เลยโผล่มาแค่นั้น...
อะไรกัน อีก Rust เหรอ? คิดแบบนั้นอยู่.... แต่เป็น C นี่เอง... ตกใจเลย
เป็นภาษาหลักที่ผมใช้พอดี เลยดีใจครับ...
ดูเหมือนว่า C++ จะช้ากว่า C อยู่เหมือนกันนะ..
ไม่ใช่ว่าเขาไปทำด้วยอะไรล่ะ ถึงได้บอกว่าทำด้วย c++ แล้วช้า ที่แท้ก็เป็น C นี่เอง .....