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 usecases gaining a 40x improvement. Memory savings are consistently > 5x.
In addition to the C++ solver, Kiwi ships with hand-rolled Python bindings for Python 3.7+.
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
kiwisolver-1.3.2.tar.gz
(54.6 kB
view hashes)
Built Distributions
Close
Hashes for kiwisolver-1.3.2-pp37-pypy37_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bcadb05c3d4794eb9eee1dddf1c24215c92fb7b55a80beae7a60530a91060560 |
|
MD5 | d7e5fa0ce1f47b340857ebd1450106cb |
|
BLAKE2b-256 | 27d5b749830ceaf730f27bb5f84663d3bd071b25a68c2775a9e96a7605035464 |
Close
Hashes for kiwisolver-1.3.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25405f88a37c5f5bcba01c6e350086d65e7465fd1caaf986333d2a045045a223 |
|
MD5 | 0fa4a6772e4301855081742be9c8407f |
|
BLAKE2b-256 | 147299464218d9ddda7200e86c9015ef1992dac76d264cae51ea2255c06aa61d |
Close
Hashes for kiwisolver-1.3.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b65bd35f3e06a47b5c30ea99e0c2b88f72c6476eedaf8cfbc8e66adb5479dcf |
|
MD5 | 8d58fca68d97c75a11e8f4618eeffb14 |
|
BLAKE2b-256 | b71f6b7e4a51e5860a3da0c7aa599ce220c008446a5b86f89c4c1c7131cd11a7 |
Close
Hashes for kiwisolver-1.3.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf7eb45d14fc036514c09554bf983f2a72323254912ed0c3c8e697b62c4c158f |
|
MD5 | a53cd9f72328ce5c3b23456f7ed97ab1 |
|
BLAKE2b-256 | 97526bc81dd6e27233f3da51afad02aa0f9176546022c9033ceeee758829dfa2 |
Close
Hashes for kiwisolver-1.3.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dedc71c8eb9c5096037766390172c34fb86ef048b8e8958b4e484b9e505d66bc |
|
MD5 | a6cb55fae7ccd2697b4ad2943ccaf17b |
|
BLAKE2b-256 | a850d1ea98283f699c91a8daea3c3a7818fc7b0d378ff2d976e057705dc0178a |
Close
Hashes for kiwisolver-1.3.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cba430db673c29376135e695c6e2501c44c256a81495da849e85d1793ee975ad |
|
MD5 | 567343fe20692bfe78e0a4419d3f3f7d |
|
BLAKE2b-256 | c703a345e0219a3e41e4839bb2a2799ab2907a39bbfa54969fffef9a70d6825a |
Close
Hashes for kiwisolver-1.3.2-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83d2c9db5dfc537d0171e32de160461230eb14663299b7e6d18ca6dca21e4977 |
|
MD5 | 1cc44bd5b48170352b8c284834461017 |
|
BLAKE2b-256 | 3bc52b757af23576bdc97df580c18f2c9ab9497703ad6147a9daa8822ef31e91 |
Close
Hashes for kiwisolver-1.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72be6ebb4e92520b9726d7146bc9c9b277513a57a38efcf66db0620aec0097e0 |
|
MD5 | 19dcc1d780f1becb9a04d03d51391afd |
|
BLAKE2b-256 | 398ae785b0d7f241f25bc5c464c1d226ed144434ca4f559d8ec44a1da4f5a219 |
Close
Hashes for kiwisolver-1.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ddb500a2808c100e72c075cbb00bf32e62763c82b6a882d403f01a119e3f402 |
|
MD5 | 46c67e3d714911ccc83b48abe9a91ff2 |
|
BLAKE2b-256 | 4de3d61b318ffe1bdbf36fb1569c4f45851dc6a4cb8a552d95826d7eb72bdf29 |
Close
Hashes for kiwisolver-1.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9661a04ca3c950a8ac8c47f53cbc0b530bce1b52f516a1e87b7736fec24bfff0 |
|
MD5 | 31bd647a83414ce0d1bc1e09d02ebf74 |
|
BLAKE2b-256 | eaed3ac7140179e73ded0244c1e2c7ca0bd511cd1ae207176f16c73f2a36e097 |
Close
Hashes for kiwisolver-1.3.2-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82f49c5a79d3839bc8f38cb5f4bfc87e15f04cbafa5fbd12fb32c941cb529cfb |
|
MD5 | 340acc78f7f64b28e4caad66dc4f5b13 |
|
BLAKE2b-256 | a983c2e6e98fe394b94cba598cb90d234fa16ad98b69f9d6f473250d15ebf2a9 |
Close
Hashes for kiwisolver-1.3.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2210f28778c7d2ee13f3c2a20a3a22db889e75f4ec13a21072eabb5693801e84 |
|
MD5 | 7e42eeb38cbd7a71224b9f7d8f2155e2 |
|
BLAKE2b-256 | c6a2bd13d5378679bb5e34ce1d81b0e19aebaa48b7f7806fbba19ec3abfa2985 |
Close
Hashes for kiwisolver-1.3.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4550a359c5157aaf8507e6820d98682872b9100ce7607f8aa070b4b8af6c298 |
|
MD5 | eb0479ab849243880b35db5c3f6f838e |
|
BLAKE2b-256 | 4b9b070ae10fa1dd48a14da1a3e85573d31f0f55fd53466dfa043e4c5314da93 |
Close
Hashes for kiwisolver-1.3.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d93a1095f83e908fc253f2fb569c2711414c0bfd451cab580466465b235b470 |
|
MD5 | 74e6708eeedb7da8bf967d376edc9059 |
|
BLAKE2b-256 | 51204128efe2960970de3b206fc24aa98e8a2f27c7f508b35ce9fb24702a660f |
Close
Hashes for kiwisolver-1.3.2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d819553730d3c2724582124aee8a03c846ec4362ded1034c16fb3ef309264e6 |
|
MD5 | 2670b31b474be5fbe76d8b05004ebab7 |
|
BLAKE2b-256 | 32abccab485bbe5e2fc0510c4605912b93b171f7a6644b91992b74b61d0fe0c5 |
Close
Hashes for kiwisolver-1.3.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eedd3b59190885d1ebdf6c5e0ca56828beb1949b4dfe6e5d0256a461429ac386 |
|
MD5 | e4859e02b8b7cb965ab5eadb3e4c25cb |
|
BLAKE2b-256 | 049d4ccf8ad52441787ed4ae97132f62dc52ce6556406d4b5a7128f00a15511d |
Close
Hashes for kiwisolver-1.3.2-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6f5eb2f53fac7d408a45fbcdeda7224b1cfff64919d0f95473420a931347ae9 |
|
MD5 | 1ed1465a65eee8f7b4c2d92be3ba51bd |
|
BLAKE2b-256 | 7d89eda2c3db3fc8cf4ff8f3e2ac0d6d98f4b2fc05c5a5dad3e040be2e181af3 |
Close
Hashes for kiwisolver-1.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7843b1624d6ccca403a610d1277f7c28ad184c5aa88a1750c1a999754e65b439 |
|
MD5 | dc21b15d578d4785780fabbfc63bae6b |
|
BLAKE2b-256 | cb03cec2a895984f27007e31803aef824ac80bd5fb658779df8b9eb96698d2e0 |
Close
Hashes for kiwisolver-1.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba677bcaff9429fd1bf01648ad0901cea56c0d068df383d5f5856d88221fe75b |
|
MD5 | a330e2af4def9a1c1fbaf40cefa368b5 |
|
BLAKE2b-256 | 95141d1270da411c05f9be4caac405123fc920f460b8b9cf8205d10eb59eddde |
Close
Hashes for kiwisolver-1.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f8f6c8f4f1cff93ca5058d6ec5f0efda922ecb3f4c5fb76181f327decff98b8 |
|
MD5 | 9d73079d1c92a034a4fe43d9422474ca |
|
BLAKE2b-256 | 033c0d52f63c80869311bdf555f4abfe793b2c514ae822edb833f2fe31a42ac0 |
Close
Hashes for kiwisolver-1.3.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30fa008c172355c7768159983a7270cb23838c4d7db73d6c0f6b60dde0d432c6 |
|
MD5 | 1e0576a671dbe00667c858cb0558ec5e |
|
BLAKE2b-256 | 1f9958fe27c8e4a3de823f9fc28ab2c415347efc4139f1c85cac65a008007210 |
Close
Hashes for kiwisolver-1.3.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f441422bb313ab25de7b3dbfd388e790eceb76ce01a18199ec4944b369017009 |
|
MD5 | e5e9d49e48ba8e84bc255ce9d4054dfc |
|
BLAKE2b-256 | 4a594c4fe1be642b3fe31f50b51b77c0368c22336781c0fe218ff7d75419ec48 |
Close
Hashes for kiwisolver-1.3.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8eb7b6716f5b50e9c06207a14172cf2de201e41912ebe732846c02c830455b9 |
|
MD5 | 15bc8f17d1a8f471544be33ab00ba2d3 |
|
BLAKE2b-256 | 02a3bff9e7368355d3d03259c02a29eeec9455ea9aef44b55bc311eea4646fce |
Close
Hashes for kiwisolver-1.3.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80efd202108c3a4150e042b269f7c78643420cc232a0a771743bb96b742f838f |
|
MD5 | e15b2f8ca963571980e1f488cbd7e740 |
|
BLAKE2b-256 | 179940638eab98b3e3970ad2aec0715e13bf38497b4ee5dd74d14ba622bbe342 |
Close
Hashes for kiwisolver-1.3.2-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a498bcd005e8a3fedd0022bb30ee0ad92728154a8798b703f394484452550507 |
|
MD5 | 214b54071a5adc75bef851ff3b064008 |
|
BLAKE2b-256 | 863a52a9163717351c20f35ea57552da06e7d82250d0eb8c34c03894066b067c |
Close
Hashes for kiwisolver-1.3.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8dc3d842fa41a33fe83d9f5c66c0cc1f28756530cd89944b63b072281e852031 |
|
MD5 | e4c647a9266341eb8b7b0730db2c8735 |
|
BLAKE2b-256 | 30175474c0fcd670f1bb2204218bf3f444e6012a97f774336022612320ab4ea4 |
Close
Hashes for kiwisolver-1.3.2-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee040a7de8d295dbd261ef2d6d3192f13e2b08ec4a954de34a6fb8ff6422e24c |
|
MD5 | f3e2ed1b6a3d795350907d39b8d0601a |
|
BLAKE2b-256 | 9c7d4d35b45a6211d164a0a07ff36eb6530742f61879a4484f447089c14650bf |
Close
Hashes for kiwisolver-1.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d45d1c74f88b9f41062716c727f78f2a59a5476ecbe74956fafb423c5c87a76 |
|
MD5 | 7c038857100ab2c0a6e43e978b967d75 |
|
BLAKE2b-256 | 02fcf6b4eba485cce2b95349c29f08f7d11bcd4975d56a2414c1eb3e98c56b63 |
Close
Hashes for kiwisolver-1.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 44e6adf67577dbdfa2d9f06db9fbc5639afefdb5bf2b4dfec25c3a7fbc619536 |
|
MD5 | 712d0fdb55134f1f8944e30b741e512e |
|
BLAKE2b-256 | ff8d6c8481813b2f097306835393fdcb3f9fc03cb3b87e30811af11328e39ccb |
Close
Hashes for kiwisolver-1.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ba5a1041480c6e0a8b11a9544d53562abc2d19220bfa14133e0cdd9967e97af |
|
MD5 | f483d45e8b12ea4f90b6e06667661e4b |
|
BLAKE2b-256 | 4309a92a5ce32e654e5469a3e5f55a92d350815d81108e91178c914bd174f58b |
Close
Hashes for kiwisolver-1.3.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6a5431940f28b6de123de42f0eb47b84a073ee3c3345dc109ad550a3307dd28 |
|
MD5 | da30df879b76330cdd542af562b7ff0e |
|
BLAKE2b-256 | d02cc3cba6c1ec54c82bfc56204c712dd2e9b069e2590f78a18841dafbdf2ced |
Close
Hashes for kiwisolver-1.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70adc3658138bc77a36ce769f5f183169bc0a2906a4f61f09673f7181255ac9b |
|
MD5 | 9fc53459491158431085d52de121705c |
|
BLAKE2b-256 | 627cdfdae2023fe95d7ac5638002fcd99420406529113f7904bc118176470a2e |
Close
Hashes for kiwisolver-1.3.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c358721aebd40c243894298f685a19eb0491a5c3e0b923b9f887ef1193ddf829 |
|
MD5 | ef2e533b329a75cf2ce1b6c950787cb4 |
|
BLAKE2b-256 | b987812ac51bba59f4d50d64e9c56a3c965259677b1baf9cb1e95c060fd24e3a |
Close
Hashes for kiwisolver-1.3.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22521219ca739654a296eea6d4367703558fba16f98688bd8ce65abff36eaa84 |
|
MD5 | 3bec7b913deb7833dbe1bdd13b5df4f2 |
|
BLAKE2b-256 | 6673fa9d7025654c87d223b8be880975956093baaf55e5935637573283d3abc4 |
Close
Hashes for kiwisolver-1.3.2-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5074fb09429f2b7bc82b6fb4be8645dcbac14e592128beeff5461dcde0af09f |
|
MD5 | f27489d68cff1236554071c371a39763 |
|
BLAKE2b-256 | b1445e87875d38fec7bf66a3f3e1687b00ce2d2335afd520c7fa409f770b2be8 |
Close
Hashes for kiwisolver-1.3.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6572c2dab23c86a14e82c245473d45b4c515314f1f859e92608dcafbd2f19b8 |
|
MD5 | 9b4575e275b5d8efa4fd7638fdf53280 |
|
BLAKE2b-256 | b9afd22a5f1125cf141526e6eb77c800fa29d1f206469d365c5fa6e3803ded2a |
Close
Hashes for kiwisolver-1.3.2-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5326ddfacbe51abf9469fe668944bc2e399181a2158cb5d45e1d40856b2a0589 |
|
MD5 | 674cec3973f1a7644a5dfbb811cdcd46 |
|
BLAKE2b-256 | 52252447aaf60210d5b1dc8dee3473a77435f707b730b0a086806d488903ed56 |
Close
Hashes for kiwisolver-1.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0007840186bacfaa0aba4466d5890334ea5938e0bb7e28078a0eb0e63b5b59d5 |
|
MD5 | a3dda1540c8d22e150463f6dd8837674 |
|
BLAKE2b-256 | 646fc045915d2f96e6196c6eea537d9df472af35687f17a5d199ce0c16e1fe4b |
Close
Hashes for kiwisolver-1.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7a4cf5bbdc861987a7745aed7a536c6405256853c94abc9f3287c3fa401b174 |
|
MD5 | ea1336d8fdda4bbacc9b497228a8ae14 |
|
BLAKE2b-256 | ff23199159cfca465e33ce680c4814812274247c9002c430c447a8a960c9c4ed |
Close
Hashes for kiwisolver-1.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19554bd8d54cf41139f376753af1a644b63c9ca93f8f72009d50a2080f870f77 |
|
MD5 | d9417fff9824224917a55802a3eff64a |
|
BLAKE2b-256 | 9ab6ce008cbc2770c1986ad07062afbd52f6fba819aa227203fa55d9cb43364f |
Close
Hashes for kiwisolver-1.3.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3dbb3cea20b4af4f49f84cffaf45dd5f88e8594d18568e0225e6ad9dec0e7967 |
|
MD5 | f5007764f8ef54187b20a31109f57c0f |
|
BLAKE2b-256 | 096b6e567cb2e86d4e5939a9233f8734e26021b6a9c1bc4b1edccba236a84cc2 |
Close
Hashes for kiwisolver-1.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec2eba188c1906b05b9b49ae55aae4efd8150c61ba450e6721f64620c50b59eb |
|
MD5 | 7ec9fb740af3f3d1d61a5674e4b10203 |
|
BLAKE2b-256 | 548ee80b95ea330f82cf62f5accde25a253937f823afd05ac54520eb81279ab7 |
Close
Hashes for kiwisolver-1.3.2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4116ba9a58109ed5e4cb315bdcbff9838f3159d099ba5259c7c7fb77f8537492 |
|
MD5 | 9ef63a74d1123f48386e1df2cc4f7f46 |
|
BLAKE2b-256 | d30499e71c7b7b92e756b68c80fbf139acdfa5c1f86c180a5a18db871af47c30 |