Lexbor - 오픈소스 HTML 렌더러 라이브러리
(github.com/lexbor)- 새로운 브라우저 엔진을 개발하는 프로젝트
- 기존의 브라우저 엔진들은 C++로 개발되어 크고 느리며 유연하지 못한 문제가 있음
- Lexbor는 C로 개발되어 이식성, 모듈화, 속도, 독립성, 표준 준수 등을 목표로 함
- Lexbor의 주요 특징:
- HTML, CSS, Encoding, URL, Punycode, Unicode 등 다양한 모듈로 구성됨
- 각 모듈을 독립적인 라이브러리로 사용 가능
- 외부 의존성이 없음
- 다양한 플랫폼으로 이식이 용이함
- C99를 지원하며 매우 빠른 속도를 자랑함
- HTML 모듈의 특징:
- HTML5 스펙을 완전히 준수함
- 엘리먼트와 속성을 조작하는 기능 제공
- 파편화된 HTML 파싱 지원 (
innerHTML
) - 청크 단위 파싱 지원
- 2억 개 이상의 실제 HTML 페이지로 테스트됨
-
Document
와Parser
의 두 가지 파싱 방식 제공 - 인코딩 자동 판별 기능
- 태그 속성과
<style>
태그 내의 CSS 스타일 파싱 기능
- CSS 모듈의 특징:
- CSS Syntax 모듈을 완전히 준수함
- 셀렉터와 스타일시트 트리(CSSOM) 지원
- Lexbor는 CentOS, Debian, Fedora, RHEL, Ubuntu 등 다양한 OS의 바이너리 패키지를 제공함
- macOS에서는 Homebrew와 MacPorts를 통해 설치 가능
- 소스코드는 CMake를 이용해 빌드 가능
-
liblexbor
는 모든 모듈이 포함된 단일 라이브러리이고, 각 모듈별로liblexbor-{module}
라이브러리가 있음 - Elixir, Crystal, Python, D, Ruby 등 다양한 언어의 바인딩과 래퍼가 존재함
메인화면에 "기존의 브라우저 엔진들은 C++로 개발되어 크고 느리며 유연하지 못한 문제가 있음 ..." 까지만 나오길래...
뭐야 또 러스트인가? 싶었는데.... C네요... ㄷㄷㄷ
제 주력 언어라 반갑네요...