sass-site/source/libsass.md
Jonny Gerig Meyer 530843250f
fix more links
2023-06-20 12:09:16 -04:00

5.7 KiB

layout title introduction navigation complementary_content
has_both_sidebars LibSass LibSass is an implementation of Sass in C/C++, designed to be easy to integrate into many different languages. However, as time wore on it ended up lagging behind [Dart Sass](/dart-sass) in features and CSS compatibility. **LibSass is now deprecated**—new projects should use Dart Sass instead. <h2>Wrappers</h2> <nav class="sl-c-list-navigation-wrapper"> - [SassC](#sassc) - [Crystal](#crystal) - [Go](#go) - [Java](#java) - [JavaScript](#javascript) - [Lua](#lua) - [.NET](#net) - [Node](#node) - [Perl](#perl) - [PHP](#php) - [Python](#python) - [Ruby](#ruby) - [R](#r) - [Rust](#rust) - [Scala](#scala) </nav> <h2>Resources</h2> - [Lightning fast Sass compiling with libsass, Node-sass and Grunt-sass](https://benfrain.com/lightning-fast-sass-compiling-with-libsass-node-sass-and-grunt-sass/) --- by Ben Frain, August 2013

Wrappers

LibSass is just a library. To run the code locally (i.e. to compile your stylesheets), you need an implementer, or "wrapper". There are a number of other wrappers for LibSass. We encourage you to write your own wrapper --- the whole point of LibSass is that we want to bring Sass to many other languages, not just Ruby!

Below are the LibSass wrappers that we're currently aware of. Sometimes there are multiple wrappers per language -- in those cases, we put the most recently-updated wrapper first.

  • Sass C

    SassC (get it?) is a wrapper written in C.

    To run the compiler on your local machine, you need to build SassC. To build SassC, you must have either a local copy of the LibSass source or it must be installed into your system. For development, please use the source version. You must then setup an environment variable pointing to the LibSass folder, for example:

    export SASS_LIBSASS_PATH=/Users/hampton/path/libsass
    

    The executable will be in the bin folder. To run it, try something like:

    ./bin/sassc [input file] > output.css
    
  • Crystal

    sass.cr is a LibSass wrapper for the Crystal programming language.

  • Go

    go-libsass has the most active GoLang wrapper. gosass is another LibSass wrapper.

    C6 is a Sass 3.2 compatible implementation written in pure GoLang that aims to extend Sass. wellington/sass is an in-progress pure Go Sass lexer, parser, and compiler.

  • Java

    There is one Java wrapper --- jsass. There is also a plugin for Maven --- LibSass Maven plugin.

  • JavaScript

    The sass.js project makes LibSass available as pure JavaScript. There's a way to test it in the browser, too.

  • Lua

    The Lua wrapper is found at lua-sass.

  • .NET

    LibSass Host is updated regularly, and is probably the best bet. There's also libsass-net or NSass, although they haven't been updated in a while.

  • Node

    The node-sass project has proven to be popular, and we've taken it into the main Sass GitHub repo. Check out its package page here, and there's a dedicated twitter account for updates.

  • Perl

    The CSS::Sass project is updated regularly. There's the Text-Sass-XS project, too, although it hasn't been updated in a while.

  • PHP

    The SassPHP project is an updated fork of an older PHP version.

  • Python

    The libsass-python project is updated regularly. There are more details on its own website.

    Three other Python projects, python-scss, pylibsass and SassPython, haven't been updated in a while.

  • Ruby

    LibSass has also been ported back into Ruby for the sassc-ruby project.

  • R

    The R Sass package wraps LibSass with additional caching and bundling methods. Extended documentation.

  • Rust

    The sass_rs crate is a LibSass wrapper and is updated regularly.

  • Scala

    The only Scala project, Sass-Scala, hasn't been updated in a couple of years.

About LibSass

This project is the brainchild of Hampton Lintorn-Catlin, the original creator of Sass. Aaron Leung is the primary developer.

LibSass logo