Cassowary (software)
| Company type | Software toolkit |
|---|---|
| Industry | Software development, User interface design |
| Founded | 1998 |
| Founder | Greg J. Badros, Alan Borning, Peter J. Stuckey |
| Products | Incremental constraint solver for linear equalities and inequalities |
Cassowary is a toolkit designed for incremental constraint solving that effectively handles systems consisting of linear equalities and inequalities. It manages both mandatory requirements and optional preferences. Developers define constraints, and the solver adjusts the variables accordingly to fulfill them.
Created by Greg J. Badros, Alan Borning, and Peter J. Stuckey, Cassowary was tailored specifically for user interface development. Greg Badros utilized Cassowary in the creation of Constraint Cascading Style Sheets (CCSS), an extension to Cascading Style Sheets (CSS) that incorporates layout constraints, thereby allowing web designers to build more adaptable page designs. The solver computes these constraints to finalize the layout arrangements.
The initial release, which has not been updated since 2000, provided implementations in Smalltalk, C++, and Java, along with bindings for GNU Guile, Python, and STk. Additionally, external implementations have been developed for JavaScript, Dart, Squeak, Python, the .NET Framework, and Rust.
Applications
- In 2014, The Grid developed GSS, a web layout language and engine that builds on CCSS by utilizing Cassowary.
- Layx, a web layout language designed for ease of use.
- Scwm, the Scheme Constraints Window Manager.
- Since 2011, Cassowary has been integrated into the layout engines of Mac OS X starting with Lion and iOS beginning with version 6.
- The layout engine of Enaml is constructed upon the Cassowary linear constraint solver.