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.3.tar.gz
(97.0 kB
view hashes)
Built Distributions
Close
Hashes for kiwisolver-1.4.3-pp37-pypy37_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 130c6c35eded399d3967cf8a542c20b671f5ba85bd6f210f8b939f868360e9eb |
|
MD5 | 2a554d4e369ff89d3105edbaecf537d7 |
|
BLAKE2b-256 | f1624f48234f33d7c2233b95dc56575a1ca7bf86e2e4fad3f53a60e9163b3460 |
Close
Hashes for kiwisolver-1.4.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ae7aa0784aeadfbd693c27993727792fbe1455b84d49970bad5886b42976b18 |
|
MD5 | fca8272825442e1bc8d657c2d8c85d2b |
|
BLAKE2b-256 | d849d4935f75c10c403d1231064c962057c90250ac2d7c3fb9f0ce56e9d17fa7 |
Close
Hashes for kiwisolver-1.4.3-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 654280c5f41831ddcc5a331c0e3ce2e480bbc3d7c93c18ecf6236313aae2d61a |
|
MD5 | c3957980e4cad5f5dd388ddf74bc93af |
|
BLAKE2b-256 | 7412ccd727bca3e89eec4b3c4aa00b7c7e207e9f11f48fb3683b1530778afc6b |
Close
Hashes for kiwisolver-1.4.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 325fa1b15098e44fe4590a6c5c09a212ca10c6ebb5d96f7447d675f6c8340e4e |
|
MD5 | 18abe88b64d8843d2bb902b4db113e49 |
|
BLAKE2b-256 | 72f85c5a643fc9fd6a8cc9d22e0eeffba52fc147cdfac2046bd7cf4b01e1f611 |
Close
Hashes for kiwisolver-1.4.3-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a297d77b3d6979693f5948df02b89431ae3645ec95865e351fb45578031bdae |
|
MD5 | 860b53d9913b1ad15a650dbede16f3fe |
|
BLAKE2b-256 | 05cf9e3439d7ef180520768ca9a83a6e2cad7a38fb330eb8c62761c559bfb741 |
Close
Hashes for kiwisolver-1.4.3-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d76780d9c65c7529cedd49fa4802d713e60798d8dc3b0d5b12a0a8f38cca51c |
|
MD5 | a544481365ca09490ccb09de3b618192 |
|
BLAKE2b-256 | bc4e004ff5e762918f426434d018b726e7e05c4a3ab70728b1b8f5573187f04d |
Close
Hashes for kiwisolver-1.4.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c16635f8dddbeb1b827977d0b00d07b644b040aeb9ff8607a9fc0997afa3e567 |
|
MD5 | bcf2ef53552766ec7b0970da37481782 |
|
BLAKE2b-256 | 983c9867b0a0e17b40cf71ad10f1b3fbd76a1019bac7d9fd170d665e7e8d2fac |
Close
Hashes for kiwisolver-1.4.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51078855a16b7a4984ed2067b54e35803d18bca9861cb60c60f6234b50869a56 |
|
MD5 | 17f6297eacca91c2e8bb305443afc253 |
|
BLAKE2b-256 | 5cfbbcd95cee27edd9ce4457bd0cb6b3802101fb62866194654b60da8e4d0618 |
Close
Hashes for kiwisolver-1.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21a3a98f0a21fc602663ca9bce2b12a4114891bdeba2dea1e9ad84db59892fca |
|
MD5 | 9f80ce96c49ea019c4be9a4e3fefeae8 |
|
BLAKE2b-256 | 1a238cf4caa6f31608b3a2506ad40abdde28d231ccdf14a7b77066d287d2c9c6 |
Close
Hashes for kiwisolver-1.4.3-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40240da438c0ebfe2aa76dd04b844effac6679423df61adbe3437d32f23468d9 |
|
MD5 | ca72c43f966478ab4747f8cda57ceed4 |
|
BLAKE2b-256 | 584459ac0a58d3bde49dcae68527d4a4319ddfd3bfd21163ff7d9fbc7752e907 |
Close
Hashes for kiwisolver-1.4.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | afe173ac2646c2636305ab820cc0380b22a00a7bca4290452e7166b4f4fa49d0 |
|
MD5 | e5afc70ed1f4abfce4666cfba310a834 |
|
BLAKE2b-256 | 0e4062d81589b3190ee8413e3b2768f0bdd840a034ce2cf849d4e7466f05fdfc |
Close
Hashes for kiwisolver-1.4.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d2c744aeedce22c122bb42d176b4aa6d063202a05a4abdacb3e413c214b3694 |
|
MD5 | 7d030627888f65a8929c8e02ed10bde4 |
|
BLAKE2b-256 | 4d528b3ed33ee648a22fc4a4c9a7a3ae8d302fb83e3ca2d3e7e7a99451351da9 |
Close
Hashes for kiwisolver-1.4.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | caa59e2cae0e23b1e225447d7a9ddb0f982f42a6a22d497a484dfe62a06f7c0e |
|
MD5 | 6ce86bc7082b116339db217c21379f59 |
|
BLAKE2b-256 | 8fcffbdbe8edb1bf2d3aa31b8044cfc02281350045c50c57127c54dc61504607 |
Close
Hashes for kiwisolver-1.4.3-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd2842a0faed9ab9aba0922c951906132d9384be89690570f0ed18cd4f20e658 |
|
MD5 | fcc392c03b4a3da828341a6e50400a94 |
|
BLAKE2b-256 | ca5ecb0672727821e3e51bf62d8694c1c16315009f5d807af1b2d2de5ab4a137 |
Close
Hashes for kiwisolver-1.4.3-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8395064d63b26947fa2c9faeea9c3eee35e52148c5339c37987e1d96fbf009b3 |
|
MD5 | 887a75301492f050540765d5eecd4b1a |
|
BLAKE2b-256 | edb93a09dd271c08b10f39e56f5ac60448bd9007118f491aeadaa3367ac1b276 |
Close
Hashes for kiwisolver-1.4.3-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46c6e5018ba31d5ee7582f323d8661498a154dea1117486a571db4c244531f24 |
|
MD5 | 7ae969995693ae06355d4bab11062b14 |
|
BLAKE2b-256 | e4f93d322ad49ddd9a2c0abaf757c37c0b68df12e17eeee6fb69f42a35d7f125 |
Close
Hashes for kiwisolver-1.4.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b3136eecf7e1b4a4d23e4b19d6c4e7a8e0b42d55f30444e3c529700cdacaa0d |
|
MD5 | b958b4d9c362ebece5896062301122b0 |
|
BLAKE2b-256 | b52cd3d34e28b97b7401d88685c7b452b0eca8ccf445cc37ccc5dfcf5662f181 |
Close
Hashes for kiwisolver-1.4.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ffd7cf165ff71afb202b3f36daafbf298932bee325aac9f58e1c9cd55838bef0 |
|
MD5 | 2de8cd163107f87cf534d213aad1cb23 |
|
BLAKE2b-256 | 780e0c564a27ba7d6a0b39bf85a63e0b74271eea679524e4542c65f9f64ad663 |
Close
Hashes for kiwisolver-1.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84f85adfebd7d3c3db649efdf73659e1677a2cf3fa6e2556a3f373578af14bf7 |
|
MD5 | 14d7e8f9ac98d74c8cf5fc20d1ef58d5 |
|
BLAKE2b-256 | 7c66c9fd2c9357f2cea6673510cd6ad2357f17544d49bf1d538df6fdc6c8f4d1 |
Close
Hashes for kiwisolver-1.4.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 547111ef7cf13d73546c2de97ce434935626c897bdec96a578ca100b5fcd694b |
|
MD5 | 1db615028f1b540f5adb93f0ca9a2671 |
|
BLAKE2b-256 | 9a8326180a222333fc90ee931be4ab13a3492d3c3cfce6754e705de973ee1050 |
Close
Hashes for kiwisolver-1.4.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af24b21c2283ca69c416a8a42cde9764dc36c63d3389645d28c69b0e93db3cd7 |
|
MD5 | 2161486ff5f0f22280463601ac61684c |
|
BLAKE2b-256 | 9730f86f6dc89eb8abbfe60c2a8713b363f76b76d716a0df8772c6dc2cf93fe3 |
Close
Hashes for kiwisolver-1.4.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22ccba48abae827a0f952a78a7b1a7ff01866131e5bbe1f826ce9bda406bf051 |
|
MD5 | f82a49bc3ecef52cfc83a148cb116877 |
|
BLAKE2b-256 | 64d1a344f5c1d67c7532bd4e70aa5082b086233b16334f14326f6156c124ebd9 |
Close
Hashes for kiwisolver-1.4.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd628e63ffdba0112e3ddf1b1e9f3db29dd8262345138e08f4938acbc6d0805a |
|
MD5 | 2ad0ba9f9d4bc940690574f8838a2f3f |
|
BLAKE2b-256 | 0e6cda6d6cf6448995dea54c1187b56d35206e3b7796beaa0b582f5b7c7ba620 |
Close
Hashes for kiwisolver-1.4.3-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 747190fcdadc377263223f8f72b038381b3b549a8a3df5baf4d067da4749b046 |
|
MD5 | c5e4231518cdbdb85fc02f89979c17e7 |
|
BLAKE2b-256 | c90aad68f23d8ba38a3300ea91e875004264997c94383f3f1e31c2301c9fbba9 |
Close
Hashes for kiwisolver-1.4.3-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7118ca592d25b2957ff7b662bc0fe4f4c2b5d5b27814b9b1bc9f2fb249a970e7 |
|
MD5 | 8bd060bb2f0a19375fdbad5c82d8101d |
|
BLAKE2b-256 | 629d279a40059336e639cc8992610cdba2448fe71cf622d05cdbb532abe495d7 |
Close
Hashes for kiwisolver-1.4.3-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b1dcbc49923ac3c973184a82832e1f018dec643b1e054867d04a3a22255ec6a |
|
MD5 | 1579ebee3fc383526f068ac0ff0be466 |
|
BLAKE2b-256 | 05ec3b3788158f1fee453eeccf1a132153f80d3fd7ffeccd5d5b0d5f62296e5b |
Close
Hashes for kiwisolver-1.4.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 007799c7fa934646318fc128b033bb6e6baabe7fbad521bfb2279aac26225cd7 |
|
MD5 | d4673389141a66a913bdaebf479c40a2 |
|
BLAKE2b-256 | eff189afe35f189c80675fcb160aa72eaae8902cbd394d0131759fff5366277b |
Close
Hashes for kiwisolver-1.4.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4dc350cb65fe4e3f737d50f0465fa6ea0dcae0e5722b7edf5d5b0a0e3cd2c3c7 |
|
MD5 | 853e0682e84d9dd8ea15a3e8cfba42d0 |
|
BLAKE2b-256 | 7236d0d75f35ebf381721655b204efd97b9939e0699ae73c15a78b4dd909313b |
Close
Hashes for kiwisolver-1.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1858ad3cb686eccc7c6b7c5eac846a1cfd45aacb5811b2cf575e80b208f5622a |
|
MD5 | f60e93704b845276946650d296b81844 |
|
BLAKE2b-256 | ed81f8d0af81e8752659b0f3e7791c8cb6938cc3c056de987259d6ab1da20c3a |
Close
Hashes for kiwisolver-1.4.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9eb88593159a53a5ee0b0159daee531ff7dd9c87fa78f5d807ca059c7eb1b2b |
|
MD5 | b5e996db985a7f80a7faf4d7dbaca3e7 |
|
BLAKE2b-256 | 040c8fa718bc3b4edcb40d91ade0a16efca8ac35d156bfa481d40cf1f4df2d6c |
Close
Hashes for kiwisolver-1.4.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46fb56fde006b7ef5f8eaa3698299b0ea47444238b869ff3ced1426aa9fedcb5 |
|
MD5 | 5597c9a6d370a355d8b592230827883e |
|
BLAKE2b-256 | 3c8b4ace4ffdd20c5fec2751ee12ba7060c417abd505a2d279ff0d8a24d80fce |
Close
Hashes for kiwisolver-1.4.3-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26b5a70bdab09e6a2f40babc4f8f992e3771751e144bda1938084c70d3001c09 |
|
MD5 | 30cb1abdb6419df2bb354f50f39e1465 |
|
BLAKE2b-256 | 792aa405c0e1bf18738ac6ccf783504c9236373898ebb55263da919c92f0f54f |
Close
Hashes for kiwisolver-1.4.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71af5b43e4fa286a35110fc5bb740fdeae2b36ca79fbcf0a54237485baeee8be |
|
MD5 | 70096f237ecd3b80279c3eff1af14e8b |
|
BLAKE2b-256 | c0a73a33a396b305d3b1028007ca0be2d79e8005e1db80d960b83e03b5b8c811 |
Close
Hashes for kiwisolver-1.4.3-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f70f3d028794e31cf9d1a822914efc935aadb2438ec4e8d4871d95eb1ce032d6 |
|
MD5 | 6febce7a5691c98a07163469bbd2901c |
|
BLAKE2b-256 | 2af511e81ef43c63702858f04cce95ece1afbe86f18059b83ed9872cbde6e4b2 |
Close
Hashes for kiwisolver-1.4.3-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5fb73cc8a34baba1dfa546ae83b9c248ef6150c238b06fc53d2773685b67ec67 |
|
MD5 | bb5732983b23f8bd65629ad29cc341d6 |
|
BLAKE2b-256 | 9d6b51a32bac431181d1d2a740577688552f0895bb52acc7bae0af052cbd5ad7 |
Close
Hashes for kiwisolver-1.4.3-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2578e5149ff49878934debfacf5c743fab49eca5ecdb983d0b218e1e554c498 |
|
MD5 | 4738a4b864cadf8579317cd5877b5ae2 |
|
BLAKE2b-256 | 9f13f931cecd67ec9d9945f410f24cca821bb40427d20bbec41bd0f40e2a61c2 |
Close
Hashes for kiwisolver-1.4.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86bcf0009f2012847a688f2f4f9b16203ca4c835979a02549aa0595d9f457cc8 |
|
MD5 | 05917aa00270f6f5cf7ee6c04a562ff9 |
|
BLAKE2b-256 | 14a3dfa5ebc3dc9af21a41d73bd7d2f1bf04ca1320952092787ced6223799180 |
Close
Hashes for kiwisolver-1.4.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb55258931448d61e2d50187de4ee66fc9d9f34908b524949b8b2b93d0c57136 |
|
MD5 | d41fc9f71ac3d4d0038a2131a08497f5 |
|
BLAKE2b-256 | 131ace62af3cb57472acadb6eaa9e2a2e13529665c4e05798a80fbb4b92a03a3 |
Close
Hashes for kiwisolver-1.4.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d248c46c0aa406695bda2abf99632db991f8b3a6d46018721a2892312a99f069 |
|
MD5 | fd3a55cc63189ee65ae407033666bfb0 |
|
BLAKE2b-256 | ba814423cf46269a56cc686313e023fe37cdb36ed3059a5d01850e223d5a27ef |
Close
Hashes for kiwisolver-1.4.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd22085446f3eca990d12a0878eeb5199dc9553b2e71716bfe7bed9915a472ab |
|
MD5 | 43cfd3d2d86925ee2ae935ebdf9a389c |
|
BLAKE2b-256 | e61b6a47678346a601f5984f1c2afc43e2b1d6719766396bdc77f8c766cf0d0b |
Close
Hashes for kiwisolver-1.4.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7cf940af5fee00a92e281eb157abe8770227a5255207818ea9a34e54a29f5b2 |
|
MD5 | 55e90b58efe9ba3c40a1def492b687cf |
|
BLAKE2b-256 | d895652a939765bd3949e29a789b7a2bc6209db551ddc52faf08cc9ce92b9864 |
Close
Hashes for kiwisolver-1.4.3-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca3eefb02ef17257fae8b8555c85e7c1efdfd777f671384b0e4ef27409b02720 |
|
MD5 | 63db1157b592905a2e2b90e2134ce4dd |
|
BLAKE2b-256 | 6aa042ed524061e2230a6b465fa39e9fe2b4ea046e98ad8244d3e552ea001033 |