Raffia is a parser which can parse CSS, SCSS, Sass (indented syntax) and Less. However, it won't compile SCSS, Sass or Less to CSS.
There is an online playground for inspecting AST. Visit: https://raffia-play.vercel.app/.
use raffia::{ast::Stylesheet, Parser, Syntax};
let mut parser = Parser::new("a { color: green }", Syntax::Css);
let ast = parser.parse::<Stylesheet>().unwrap();
println!("{:#?}", ast);
You can find more examples in the examples directory.
For detailed usage, check out docs.rs.
You can compare performance with other parsers in benchmark.
First, you need to setup Rust and clone this repository. You also need to install cargo-criterion
by running cargo install cargo-criterion
.
Then, copy some CSS files to bench_data
directory. You need to create that directory by yourself.
Now you can run benchmark by running cargo criterion
.
Tests come from:
MIT License
Copyright (c) 2022-present Pig Fang