18 releases (breaking)

0.13.5-h28 Apr 9, 2017
0.13.3-is-everything-broken Mar 30, 2017
0.12.0-againagain Feb 2, 2016
0.11.0-shitshow Oct 24, 2015
0.8.0-ehhhh Jul 2, 2015
Download history 4/week @ 2019-01-31 19/week @ 2019-02-21 36/week @ 2019-02-28 3/week @ 2019-03-07 1/week @ 2019-03-14 121/week @ 2019-03-21 2/week @ 2019-03-28 18/week @ 2019-04-04 7/week @ 2019-04-11 1/week @ 2019-04-18 20/week @ 2019-04-25 1/week @ 2019-05-02 36/week @ 2019-05-09

128 downloads per month

MIT license

105KB
3K SLoC

Sassers

A Sass compiler written natively in Rust.

Build Status Build status

Incomplete!!!! To see current progress:

  • Clone this project and cargo build
  • Clone sass-spec and get ruby and all that good stuff
  • In sass-spec, run `./sass-spec.rb -c '/path/to/your/sassers/executable'

Last run I did was 205 passing and 4294 failing out of 4499 tests. So yeah, REALLY NOT DONE YET.

Progress bar: [=-------------------]

Sassers follows Sentimental Versioning.

License

MIT. See LICENSE.

Optimizations

  • Pass T: Write down into methods instead of returning String all the time to avoid allocating so many times

TODO

  • Compare speed/memory usage to libsass
  • Profile if it's significantly worse than libsass and fix
  • Abstract variable/parameter HashMaps into a context or binding object with nice insertion and accessing methods

Useful debugging incantation

To get debugging statements and run a particular test:

  • Add extern crate env_logger; to the test module
  • Add let _ = env_logger::init(); to the particular test function
  • Run:
$ RUST_LOG=sassers=debug cargo test -- --nocapture evaluator::tests::it_subtitutes_variable_values

Dependencies

~3MB
~55K SLoC