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.4.0.tar.gz
(95.9 kB
view hashes)
Built Distributions
Close
Hashes for kiwisolver-1.4.0-pp37-pypy37_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ca92de8e48678a2cbbd90adb10773e3553bb9fd1c090bf0dfe5fc3337a181ea |
|
MD5 | 02faad2dcba031fe10748e3d690a865a |
|
BLAKE2b-256 | d67a76e4510041bf9c7f3bf1e7b480a2131485afea3afb4f71b91a4c42d77ad4 |
Close
Hashes for kiwisolver-1.4.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | daf2030bf18c21bf91fa9cf6a403a765519c9168bd7a91ba1d66d5c7f70ded1e |
|
MD5 | 029dcf6dbb5a7061d394fe200e33e06a |
|
BLAKE2b-256 | 1044bda534c1110179bee1b2c2ac7a4d2f013b9e650f17bec10212cd9a10f11c |
Close
Hashes for kiwisolver-1.4.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71d44a6a59ea53d41e5950a42ec496fa821bd86f292fb3e10aa1b3932ecfc65e |
|
MD5 | 0f5fd8d9188319abe6b281b839807bd8 |
|
BLAKE2b-256 | 2837974cc3438a66c634be982c915823ccdd99b8f08ed8ddbdc9af1e73261a3a |
Close
Hashes for kiwisolver-1.4.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c29496625c61e18d97a6f6c2f2a55759ca8290fc21a751bc57824599c431c0d2 |
|
MD5 | cb3e55a5dca882a6a3e69e866702e3b9 |
|
BLAKE2b-256 | dff1fe99c65ac0c12e35487b41fc67fa9cc28a2b1789d3486e2d9818c463a78b |
Close
Hashes for kiwisolver-1.4.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 576ba51b9f4e4d0d583c1cd257f53397bdc5e66a5e49fe68712f658426115777 |
|
MD5 | 97762fe82bf3b84dfc10afc8e1209793 |
|
BLAKE2b-256 | 8155a3c35f5736e11d18e7c314fafe1a38fb5072290c63a960af1dd136f113ec |
Close
Hashes for kiwisolver-1.4.0-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed937691f522cc2362c280c903837a4e35195659b9935b598e3cd448db863605 |
|
MD5 | 83664e319e582e9db31ed7dc8edaf360 |
|
BLAKE2b-256 | 072e0488b0147b430f333b898e090658c1975d0cec47c64ddf4b995b09702cc8 |
Close
Hashes for kiwisolver-1.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed30c5e58e578a2981c67346b2569e04120d1b80fa6906c207fe824d24603313 |
|
MD5 | 623f0859b500ea9c18b4420ae706e093 |
|
BLAKE2b-256 | fb14e2bb03e04fdc0868f9eac88145d9c859d593e71abe1ff7022fa12ad81fe1 |
Close
Hashes for kiwisolver-1.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd0223a3a4ddcc0d0e06c6cfeb0adde2bc19c08b4c7fc79d48dac2486a4b115b |
|
MD5 | 91914eba718f1806770b8191f3abb252 |
|
BLAKE2b-256 | 839ef1e9ca50be14df7025b3234ebc46f07414b373e5af20979eda74e458cbca |
Close
Hashes for kiwisolver-1.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6bf0080449d6ea39b817d85abd2c20d2d42fd9b1587544d64371d28d93c379cf |
|
MD5 | 8420a225170b71fd14edb0b806d8c6bc |
|
BLAKE2b-256 | bc7897799e1d7573f3736a1fabf298aaff19e85f5135d89f0a4978d644c7c998 |
Close
Hashes for kiwisolver-1.4.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65cbdbe14dc5988e362eb15e02dd24c6724238cb235132f812f1e3a29a61a3de |
|
MD5 | 32c68630e278b3fe20feaf8c5963cb50 |
|
BLAKE2b-256 | def49b47efbb7e45ff38da251efca3268a5920e270aedf9e1a7011c4766a0626 |
Close
Hashes for kiwisolver-1.4.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 734e943ae519cdb8534d9053f478417c525ec921c06896ec7119e65d9ea4a687 |
|
MD5 | 2152e914f007d2c1e6b50a3f586bf547 |
|
BLAKE2b-256 | 5a7a387cd2434be7c6b62f9343bc3d9479969ce48a1cc6d3bedebeaef459e9fb |
Close
Hashes for kiwisolver-1.4.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 334a7e3d498a0a791245f0964c746d0414e9b13aef73237f0d798a2101fdbae9 |
|
MD5 | 09a86f1c2cff14b64f8f939a9b9c507c |
|
BLAKE2b-256 | 9ba00517e747b58a677d6cefb713653e8964a29ccfedd0fb1f0ae0202fefa9ec |
Close
Hashes for kiwisolver-1.4.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 384b5076b2c0172003abca9ba8b8c5efcaaffd31616f3f5e0a09dcc34772d012 |
|
MD5 | ad4462dd9d5b79cb4458ab2dd296b565 |
|
BLAKE2b-256 | 8ba8d54f66fefadc06ee4fe3a124af63ff57f85d3c75cb492980122d05e87a61 |
Close
Hashes for kiwisolver-1.4.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70e7b7a4ebeddef423115ea31857732fc04e0f38dd1e6385e1af05b6164a3d0f |
|
MD5 | 789c5e651777579e38de131c747880f6 |
|
BLAKE2b-256 | 0eb28ebc505a62ef54b92981ae73ee8ec686597f9a8cf6d6c8811e8dbac2b9a5 |
Close
Hashes for kiwisolver-1.4.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1ff5582bf55e85728119c5a23f695b8e408e15eee7d0f5effe0ee8ad1f8b523 |
|
MD5 | e842fba7f9659082c864613a76058e2a |
|
BLAKE2b-256 | edc7e78950509a1d1caa8bca2398737c983708cd374767042aa0d211725e9610 |
Close
Hashes for kiwisolver-1.4.0-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f63b981678ca894bb665bcd5043bde2c9ba600e69df730c1ceeadd73ddbcb8c |
|
MD5 | 686cec81a17381878fd15927a3d2261a |
|
BLAKE2b-256 | d7b24a50f2551ed662e267caaf131bc68597141b8074631e7b0c198419770b63 |
Close
Hashes for kiwisolver-1.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38ebc0cb30ed2f59bd15e23591a53698005123e90e880f1af4600fcdbe4912e1 |
|
MD5 | 4b9b91b13f1e50b1931495ae57d88eef |
|
BLAKE2b-256 | 2a66963a04a384ce13ccec00ef2a59c587c8bd27f27ad2c02c2db8f8250ed71f |
Close
Hashes for kiwisolver-1.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b4d1db32a4f1682df1480fd68eb1400235ac8f9ad8932e1624fdb23eb891904 |
|
MD5 | ab8e2df4eabb9020ae4698543ba7c00a |
|
BLAKE2b-256 | 1564c19ecaafa38e0c38f53869fda53932caa2c4e3dcc1a8719b76260a48787c |
Close
Hashes for kiwisolver-1.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17ec8bd4e162fd0a8723467395c5bb16fd665a528b78e9339886c82965ed8efb |
|
MD5 | 3656f6d42bad89e9f9b72bccbc98a385 |
|
BLAKE2b-256 | 915a91cbc92ffedc147e3d3e7bbd8c91ba937c33d8c9e8193c50a31110662e66 |
Close
Hashes for kiwisolver-1.4.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 925a32900fc16430ba0dec2c0fca2e776eaf2fdc0930d5552be0a59e23304001 |
|
MD5 | 9d1d8d2a86ae6ee3bf0c41d2467c71c4 |
|
BLAKE2b-256 | f35a9c7ef88d6f2312b46ec085e1fdc07e5bf6ba0904e22a4169638bbe04fafd |
Close
Hashes for kiwisolver-1.4.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b70f0729947d6327cd659e1b3477ced44a317a4ba441238b2a3642990f0ebd7 |
|
MD5 | 730b901db4338252eba00ef933fb3985 |
|
BLAKE2b-256 | f5357aa910c73060190119725d39130244ff0b8f900abb78d9d649f29cccab49 |
Close
Hashes for kiwisolver-1.4.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 676f9fac93f97f529dc80b5d6731099fad337549408e8bdd929343b7cb679797 |
|
MD5 | 8f5771f71e2a350681ed9ee214f9a000 |
|
BLAKE2b-256 | c00fed033e28da53eb9bb0fbadbf8fdc2e42830ac2f5aae7aef7492eb4dd1b48 |
Close
Hashes for kiwisolver-1.4.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0a6f3d5063e7fd6662e4773778ad2cb36e598abc6eb171af4a072ca86b441d0 |
|
MD5 | 680d5e1b411e18297c33691e23c83024 |
|
BLAKE2b-256 | 7368709f071972f31236e238c195409b2a459feafd0d9cd7dab8558acb72d2ad |
Close
Hashes for kiwisolver-1.4.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c19457f58941da61681efaabd5b1c37893108a2f922b9b19538f6921911186d |
|
MD5 | 9edb4a8d68b66cd3f243510531fa518b |
|
BLAKE2b-256 | 50ccddc88e87371606d24501f45e6326242e9ffd86ce6d8887260b2b070b5689 |
Close
Hashes for kiwisolver-1.4.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34e2e39a219b203fa3a82af5b9f8d386a8718677de7a9b82a9634e292a8f4e0a |
|
MD5 | 4487425edf15cc1ac6299208be88b6e5 |
|
BLAKE2b-256 | 0501b6ec9b6ff8580e558dc0bb262db2d1ed72223bad63ec3be7427e00cb1643 |
Close
Hashes for kiwisolver-1.4.0-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ecf82bb25cec7df4bfcf37afe49f6f6202b4fa4029be7cb0848ed319c72d356 |
|
MD5 | 3e4b0c3e53c5ea632144e9a3638fa177 |
|
BLAKE2b-256 | 032cada5413753864cc41aeea4bb92723e954b345c8f407b606097046a4def38 |
Close
Hashes for kiwisolver-1.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af6a7c956a45ee721e4263f5823e1a3b2e6b21a7e2b3646b3794e000620609d0 |
|
MD5 | 4b4fa14d018f42a882f7f57fc299f140 |
|
BLAKE2b-256 | baadd3dac0492f35e004882c9eac163441ae563f9fb6ca3f62995a9b1cde62c3 |
Close
Hashes for kiwisolver-1.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 199f32bf6f3d3e2246024326497513c5c49c62aecee86f0ac019f5991978d505 |
|
MD5 | c5c9d670e55b9d4c811210f56dce58f7 |
|
BLAKE2b-256 | a272db8c4e25d54200206427739c6a9f145c8f53f5970d9ec06c1fdcd2a2d5c5 |
Close
Hashes for kiwisolver-1.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8cd1f81bc35ec24cb82a7d0b805521e3d71b25b8a493d5810d18dc29644c6ef8 |
|
MD5 | a16f6d8546620d165193bcba50734122 |
|
BLAKE2b-256 | 3e193b1f68276e962f1d6a3284110cea466290789916764adbc5217c23c6c814 |
Close
Hashes for kiwisolver-1.4.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 14f43edc25daa0646d4b4e86c2ebdd32d785ab73a65a570130a3d234a4554b07 |
|
MD5 | fab6b4b334cdb4dbe94f39b769ab06af |
|
BLAKE2b-256 | 2b983b9e783e8d802a4d19cb4d81421020d036e79f7636bdd7629189cb682444 |
Close
Hashes for kiwisolver-1.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3891527ec51b0365bb50de9bf826ce3d5b1adc276685b2779889762437bbd359 |
|
MD5 | bd8de9309d41bca560be46178856eec8 |
|
BLAKE2b-256 | 2fe00184fd5a089bc7163a0fa44dd8efd66833296b4398323710b575b0c00c47 |
Close
Hashes for kiwisolver-1.4.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cbf9aa926de224af15c974750fecdc7d2c0043428372acaaf61216e202abbf21 |
|
MD5 | ec23daa25b43b1aba4a772602ef1c632 |
|
BLAKE2b-256 | 6165a117a5a14df178f71526c5c32fc04ac322c67be3266c2d5c27b1c0f2df51 |
Close
Hashes for kiwisolver-1.4.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 895b2df026006ff7434b03ca495983d0d26da96f6d58414c77d616747ee77e34 |
|
MD5 | b0eb7c495dd3f8b6f01376cbc32f21df |
|
BLAKE2b-256 | a06aac26c065725e1567735b5c6177893253cc6aba98fbc457321b64af14a538 |
Close
Hashes for kiwisolver-1.4.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 139c75216e5875ee5f8f4f7adcc3cd339f46f0d66bda2e10d8d21386d635476f |
|
MD5 | aab47d561c7d57ef776cac35a8cc50ce |
|
BLAKE2b-256 | 31e1e5489e525b52354f7a3c88140017bb8de7535ee51278388ef4a212c62d82 |
Close
Hashes for kiwisolver-1.4.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87367ba1ad3819f7189fe8faff5f75a7603f526576033e7b86e10b598f8790b2 |
|
MD5 | a07e3fe05110661f63dc864f5a34f13b |
|
BLAKE2b-256 | 5cdfc41c2e256c9e7612ae9b9ca0fe277f2a7bef7a25288c37989546e4fd21d7 |
Close
Hashes for kiwisolver-1.4.0-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1cf8c81e8a5fb4f5dcbd473fdb619b895313d29b7c60e4545827dcc6efbd8efc |
|
MD5 | 48e03471ea1a62f266dff28bf8f7954b |
|
BLAKE2b-256 | c2cf51a08f563e1414964c9c95c221c00d020d98060b8585fc9cba25ee367983 |
Close
Hashes for kiwisolver-1.4.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb997d1631b20745b18674d68dd6f1d9d45db512efd5fe0f162a5d4a6bbdd211 |
|
MD5 | 365bce21297ddcdfa00f82e92a3fe7b4 |
|
BLAKE2b-256 | 2e81262f69696ed3e089b44a0d66520e7aac1240643a106074113f1841e73e05 |
Close
Hashes for kiwisolver-1.4.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 313724e85fd14d581a939fa02424f4dc772fd914bc04499a8a6377d47313b966 |
|
MD5 | 0f010a69a2cf6b14c94dd171c5ab76be |
|
BLAKE2b-256 | 34872b6d751211d3fc3c7ff4266a3585af0243db9656de58b0f3b006ffe5fb9c |
Close
Hashes for kiwisolver-1.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | caff7ae6fb6dce2f520b2d46efc801605fa1378fb19bb4580aebc6174eab05a0 |
|
MD5 | 2dfbe0365a1b1cc72ec1917de4e3e1b8 |
|
BLAKE2b-256 | 8e0a7a9a371ea64ee6fa81f8687c26588f6f83c02d7d97229b298ac77dc69c68 |
Close
Hashes for kiwisolver-1.4.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4471a48f53d20d49f263ca888aab77b754525ef35e6767657e1a44a724a8b0af |
|
MD5 | 7bf5354ec217a410fdaced2f00988892 |
|
BLAKE2b-256 | e9d153a16808dca9f64d76136c4652551334be92c4521c8e63bccf3912cd847a |
Close
Hashes for kiwisolver-1.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97372c837add54e3e64a811464b14bb01428c4e9256072b6296f04157ea23246 |
|
MD5 | 0964436a2925aa91f75ce0a0c3c56518 |
|
BLAKE2b-256 | 56d49807f1db47c72d793cd7e8b923f236b3956ee5990dd6e883b564bcc846cd |
Close
Hashes for kiwisolver-1.4.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2467fe5fff6ed2a728e10dca9b1f37e9b911ca5b228a7d8990c8e3abf80c1724 |
|
MD5 | db7d64335ee2f179de7136191852a672 |
|
BLAKE2b-256 | 753a3aedb6bfd3f72dd14dc20bde9890ccf89b5f465895688a88c30195d4457c |