Cassowary is an incremental constraint solving toolkit that efficiently solves systems of linear equalities and inequalities. Constraints may be either requirements or preferences. Client code specifies the constraints to be maintained, and the solver updates the constrained variables to have values that satisfy the constraints.
Cassowary was developed by Greg Badros, Peter Stuckey, and Alan Borning. It was optimized for user interface applications. Badros used Cassowary amongst others for implementing Constraint Cascading Style Sheets (CCSS), an extension to Cascading Style Sheets (CSS).
C++ (and Python bindings)
A new implementation of the algorithm based on the seminal Cassowary paper.
C++/QML
A Qt plugin that allows you to run an incremental linear constraint solver in QML applications
JavaScript
An improved version of the original which dramatically improves performance, structure and hackability.
JavaScript + more
GSS is a CSS preprocessor & JS runtime that harnesses Cassowary.js
JavaScript
Apple's Auto Layout and Visual Format Language for Javascript (based on cassowary constraints)
JavaScript / Objective-J
Built for the Cappucino open source framework that makes it easy to build desktop-caliber browser applications.
Haxe
A direct Haxe port of the cassowary.js implementation of the Cassowary constraint solving algorithm.
Haxe
A Haxe port of Kiwi C++ and Kiwi Java implementations of the Cassowary constraint solving algorithm.
Java
A Java port of the Kiwi C++ implementation of the Cassowary constraint solving algorithm
Java
An Android layout class that uses the Cassowary incremental constraint solving algorithm
Java
A pure Java implementation of the Cassowary constraint algorithm, and an Android ViewGroup layout manager that uses it.
Here you'll be able to discuss anything related to cassowary.
(Hit the button above to join)
An easy accessible and open google group named overconstrained.
Alan Borning, Kim Marriott, Peter Stuckey, and Yi Xiao, Solving Linear Arithmetic Constraints for User Interface Applications, Proceedings of the 1997 ACM Symposium on User Interface Software and Technology, October 1997, pages 87-96 (pdf).
Greg J. Badros and Alan Borning, "The Cassowary Linear Arithmetic Constraint Solving Algorithm: Interface and Implementation", Technical Report UW-CSE-98-06-04, June 1998 (pdf).
Greg J. Badros, Alan Borning, and Peter J. Stuckey, "The Cassowary Linear Arithmetic Constraint Solving Algorithm," ACM Transactions on Computer Human Interaction, Vol. 8 No. 4, December 2001, pages 267-306 (pdf).