A fast implementation of the Cassowary constraint solver
Project description
Kiwi is an efficient C++ implementation of the Cassowary constraint solving algorithm. Kiwi is an implementation of the algorithm based on the seminal Cassowary paper. It is not a refactoring of the original C++ solver. Kiwi has been designed from the ground up to be lightweight and fast. Kiwi ranges from 10x to 500x faster than the original Cassowary solver with typical use cases gaining a 40x improvement. Memory savings are consistently > 5x.
In addition to the C++ solver, Kiwi ships with hand-rolled Python bindings.
The version 1.1.0 of the Python bindings will be the last one to support Python 2, moving forward support will be limited to Python 3.5+.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for kiwisolver-1.2.0-cp38-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18d749f3e56c0480dccd1714230da0f328e6e4accf188dd4e6884bdd06bf02dd |
|
MD5 | 189d8d3ffc436046a1cf846400a97296 |
|
BLAKE2b-256 | 3797cec83ff97d2c5190094e1331e32900b3c51623abbb1d8de229c119588375 |
Hashes for kiwisolver-1.2.0-cp38-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d069ef4b20b1e6b19f790d00097a5d5d2c50871b66d10075dab78938dc2ee2cf |
|
MD5 | 064ccde879e9d0d07af40fa2b7918b6a |
|
BLAKE2b-256 | 83c0b370ca17fd314f188d98194c0217054416401418df4928ca844dd5b4bb4e |
Hashes for kiwisolver-1.2.0-cp38-cp38-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38d05c9ecb24eee1246391820ed7137ac42a50209c203c908154782fced90e44 |
|
MD5 | 7dcee73a10ffffb157e73a8cb2e3f94c |
|
BLAKE2b-256 | e19f60ac351554e170b5a205fc215f2b7199d2702683218acad8c0a54259376f |
Hashes for kiwisolver-1.2.0-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e586b28354d7b6584d8973656a7954b1c69c93f708c0c07b77884f91640b7657 |
|
MD5 | bd2456e83d5a37bbe24e89126bb889dd |
|
BLAKE2b-256 | 36acc8627c214954b18b197f137ee96bc99e1cc31913d80d7ad59fbab3b05945 |
Hashes for kiwisolver-1.2.0-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d52b989dc23cdaa92582ceb4af8d5bcc94d74b2c3e64cd6785558ec6a879793e |
|
MD5 | 2865f86e6e07063c7053c37ae08d25a5 |
|
BLAKE2b-256 | 40dd5bc39013f1c52c7f72cabd3c2768e1de7a6904a18a6a90d3d763596374f3 |
Hashes for kiwisolver-1.2.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c31bc3c8e903d60a1ea31a754c72559398d91b5929fcb329b1c3a3d3f6e72113 |
|
MD5 | 25bb97f37f1d7cbad69b801d8830c4ae |
|
BLAKE2b-256 | f6d7d7516741c1043c3b9a55b9eb7762ec06bab4df1187705efd7dbb37d6f5ee |
Hashes for kiwisolver-1.2.0-cp37-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4eadb361baf3069f278b055e3bb53fa189cea2fd02cb2c353b7a99ebb4477ef1 |
|
MD5 | 537d93d41e984551caeb3e3eb5cc7891 |
|
BLAKE2b-256 | 7ee5d8bd2d063da3b6761270f29038d2bb9785c88ff385009bf61589cde6e6ef |
Hashes for kiwisolver-1.2.0-cp37-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03662cbd3e6729f341a97dd2690b271e51a67a68322affab12a5b011344b973c |
|
MD5 | 7408144df3a1764be5944c0216487304 |
|
BLAKE2b-256 | 12405fa3b161a602848754d1e760b77f47497ed2c2f0a6401474b96b00d885e3 |
Hashes for kiwisolver-1.2.0-cp37-cp37m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63f55f490b958b6299e4e5bdac66ac988c3d11b7fafa522800359075d4fa56d1 |
|
MD5 | 720d711b16fe81c306b39c91d879844c |
|
BLAKE2b-256 | 304245dc9db6b370a23acb70ad001a8a0272d93310eb8fb4e86a462028c87eb9 |
Hashes for kiwisolver-1.2.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 603162139684ee56bcd57acc74035fceed7dd8d732f38c0959c8bd157f913fec |
|
MD5 | 0defdacd4b2fd7634f7ece3955527cfb |
|
BLAKE2b-256 | 31b96202dcae729998a0ade30e80ac00f616542ef445b088ec970d407dfd41c0 |
Hashes for kiwisolver-1.2.0-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c955791d80e464da3b471ab41eb65cf5a40c15ce9b001fdc5bbc241170de58ec |
|
MD5 | 6fd511cfc2b98f8b892d6857380befaf |
|
BLAKE2b-256 | 72ae11ccfd6902d980d4d5c2af1c8c42462f70b376d499ab9e340ac852872e07 |
Hashes for kiwisolver-1.2.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7cc095a4661bdd8a5742aaf7c10ea9fac142d76ff1770a0f84394038126d8fc7 |
|
MD5 | 2117bd0f5138e1fc0759a782c67fde32 |
|
BLAKE2b-256 | 81c59831f281c6fb57945e83fdf39ff036cacfdc84aa1988bb3150b330533050 |
Hashes for kiwisolver-1.2.0-cp36-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 556da0a5f60f6486ec4969abbc1dd83cf9b5c2deadc8288508e55c0f5f87d29c |
|
MD5 | 7dcc3e716bdb14df93b31bb7bed8fc5c |
|
BLAKE2b-256 | 2a1ef53031838c75cef71086ab7fc0dea1853d811ba3ec72465d782877223f09 |
Hashes for kiwisolver-1.2.0-cp36-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60a78858580761fe611d22127868f3dc9f98871e6fdf0a15cc4203ed9ba6179b |
|
MD5 | e0e351fe1be39257f8f7788ead6e95b0 |
|
BLAKE2b-256 | 528c5475071d82ea5f218ec2b8635f46d8917d2e745089b1d845c5bb6d500ab2 |
Hashes for kiwisolver-1.2.0-cp36-cp36m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be046da49fbc3aa9491cc7296db7e8d27bcf0c3d5d1a40259c10471b014e4e0c |
|
MD5 | e140506d54163759ce502fed979bafc8 |
|
BLAKE2b-256 | 7bb99958c0b2b5d8f4a3a27846470052c93892fafe50452f7622edebba2a9862 |
Hashes for kiwisolver-1.2.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fccefc0d36a38c57b7bd233a9b485e2f1eb71903ca7ad7adacad6c28a56d62d2 |
|
MD5 | d2d72b39d608f99ccf9e06d019afd672 |
|
BLAKE2b-256 | ae23147de658aabbf968324551ea22c0c13a00284c4ef49a77002e91f79657b7 |
Hashes for kiwisolver-1.2.0-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | efcf3397ae1e3c3a4a0a0636542bcad5adad3b1dd3e8e629d0b6e201347176c8 |
|
MD5 | a400f1ea57d297271bfdc87e3772b6a6 |
|
BLAKE2b-256 | 576ea6d597a846551be8408baaf12188ec87e30592bdf0704647d8a9d903f4f1 |
Hashes for kiwisolver-1.2.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 443c2320520eda0a5b930b2725b26f6175ca4453c61f739fef7a5847bd262f74 |
|
MD5 | 751e8162d68aad3474b0708bcc3c61a4 |
|
BLAKE2b-256 | 06b2f7e88efd6323df9ae604f1ff35c629f266d4f424f2a244a7e1d5560c5d96 |