Telecss (WIP)
CSS tokenizer, parser, transformer, written in Rust.
This project is mainly based on the following specs:
- CSS Syntax Module Level 3 document.
- Syntax and basic data types document.
- CSS Values and Units Module Level 3
- Selectors Level 4
Benchmark
Benchmarks on each commit: https://telecss.github.io/telecss/dev/bench/
This benchmark is based on parsing/tokenizing the crates/telecss/examples/normalizecss/normalize.css
file, and the time-consuming of parsing includes the time-consuming of tokenizing:
Pure Parsing Time
=Parsing Time
-Tokenizing Time
TODO
Current Focus
- parsing selectors
Schedule
- Make tokenizer available.
- Make parser available.
- Benchmarks & CI (https://github.com/benchmark-action/github-action-benchmark)
- Make transformer available.
- Make generator available.
- Playground (with WASM)
- Allows writing plugins using Nodejs
- Generate code frame for diagnostics when errors occur.
- Docs