# Lexbor - 오픈소스 HTML 렌더러 라이브러리

> Clean Markdown view of GeekNews topic #15332. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=15332](https://news.hada.io/topic?id=15332)
- GeekNews Markdown: [https://news.hada.io/topic/15332.md](https://news.hada.io/topic/15332.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2024-06-14T09:46:02+09:00
- Updated: 2024-06-14T09:46:02+09:00
- Original source: [github.com/lexbor](https://github.com/lexbor/lexbor)
- Points: 24
- Comments: 4

## Summary

Lexbor는 C로 개발된 오픈소스 HTML 렌더러 라이브러리로, 이식성, 모듈화, 속도, 독립성, 표준 준수를 목표로 합니다. HTML5와 CSS Syntax를 완전히 준수하며, 다양한 모듈을 독립적으로 사용할 수 있어 유연성과 성능이 뛰어납니다. 또한, 다양한 운영체제와 프로그래밍 언어를 지원하여 폭넓은 호환성을 제공합니다.

## Topic Body

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

## Comments



### Comment 26290

- Author: aer0700
- Created: 2024-06-16T08:18:35+09:00
- Points: 1

C++ 이 느려서 c...  
와...c++이 느리다는 생각을 해본적 없는데 저런 세상은 또 다른 모양이네요  
굉장합니다

### Comment 26284

- Author: botplaysdice
- Created: 2024-06-15T14:16:14+09:00
- Points: 2

메인화면에 "기존의 브라우저 엔진들은 C++로 개발되어 크고 느리며 유연하지 못한 문제가 있음 ..." 까지만 나오길래...  
  
뭐야 또 러스트인가? 싶었는데.... C네요... ㄷㄷㄷ   
  
제 주력 언어라 반갑네요...

### Comment 26269

- Author: mdisprgm
- Created: 2024-06-14T17:22:36+09:00
- Points: 1

C++이 C보다는 느리긴 하군요..

### Comment 26268

- Author: penza1
- Created: 2024-06-14T15:03:18+09:00
- Points: 1

아니 대체 뭘로 구현했길래 c++ 로 되어 느리다고 하는거야 했는데   
C 군요 .....
