Kasuari
Cassowary constraint solving algorithm
Install / Use
/learn @ratatui/KasuariREADME
Kasuari
A Rust implementation of the Cassowary constraint solving algorithm (Badros et. al 2001). It is based heavily on the implementation the C++ Kiwi library. The implementation does however differ in some details.
This library is a fork of Cassowary-rs, by Dylan Ede, which hasn't been maintained since 2018.
Kasuari is the Indonesian name for the Cassowary bird.
Cassowary is designed for solving constraints to lay out user interfaces. Constraints typically take the form "this button must line up with this text box", or "this box should try to be 3 times the size of this other box". Its most popular incarnation by far is in Apple's Autolayout system for Mac OS X and iOS user interfaces. UI libraries using the Cassowary algorithm manage to achieve a much more natural approach to specifying UI layouts than traditional approaches like those found in HTML.
This library is a low level interface to the solving algorithm, though it tries to be as convenient as possible. As a result it does not have any intrinsic knowledge of common user interface conventions like rectangular regions or even two dimensions. These abstractions belong in a higher level crate.
For more information, please read the Kasuari API docs.
Getting Started
Add this crate to your Cargo.toml file
cargo add kasuari
Changes from Cassowary-rs
See the CHANGELOG for a full list of changes.
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE
- MIT license (LICENSE-MIT
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Related Skills
node-connect
351.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
351.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
351.4kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
