Lexbor - biblioteca open source de renderizado HTML
(github.com/lexbor)- Un proyecto para desarrollar un nuevo motor de navegador
- Los motores de navegador existentes están desarrollados en C++ y tienen problemas por ser grandes, lentos y poco flexibles
- Lexbor está desarrollado en C y busca portabilidad, modularidad, velocidad, independencia y cumplimiento de estándares
- Características principales de Lexbor:
- Está compuesto por diversos módulos como HTML, CSS, Encoding, URL, Punycode y Unicode
- Cada módulo puede usarse como una biblioteca independiente
- No tiene dependencias externas
- Es fácil de portar a distintas plataformas
- Soporta C99 y presume una velocidad muy alta
- Características del módulo HTML:
- Cumple completamente con la especificación HTML5
- Proporciona funciones para manipular elementos y atributos
- Soporta el parsing de HTML fragmentado (
innerHTML) - Soporta parsing por chunks
- Ha sido probado con más de 200 millones de páginas HTML reales
- Ofrece dos formas de parsing:
DocumentyParser - Función de detección automática de encoding
- Función de parsing de atributos de etiquetas y estilos CSS dentro de la etiqueta
<style>
- Características del módulo CSS:
- Cumple completamente con el módulo CSS Syntax
- Soporta selectores y el árbol de hojas de estilo (CSSOM)
- Lexbor ofrece paquetes binarios para varios sistemas operativos como CentOS, Debian, Fedora, RHEL y Ubuntu
- En macOS puede instalarse mediante Homebrew y MacPorts
- El código fuente puede compilarse usando CMake
liblexbores una biblioteca única que incluye todos los módulos, y también existen bibliotecasliblexbor-{module}para cada módulo- Existen bindings y wrappers para varios lenguajes como Elixir, Crystal, Python, D y Ruby
4 comentarios
Como C++ es lento, entonces c...
Vaya... nunca había pensado que C++ fuera lento, pero parece que ese también es otro tipo de mundo.
Impresionante
Como en la pantalla principal solo aparecía hasta: "los motores de navegador existentes están desarrollados en C++, y tienen problemas de ser grandes, lentos y poco flexibles..."
Pensé: ¿qué es esto, otro más en Rust?... pero no... es C... wow.
Es mi lenguaje principal, así que me da gusto verlo...
Parece que C++ sí es más lento que C..
No, o sea, me preguntaba con qué demonios lo habían implementado para decir que era lento por estar hecho en C++, pero resulta que era en C .....