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.2.tar.gz
(96.9 kB
view hashes)
Built Distributions
Close
Hashes for kiwisolver-1.4.2-pp37-pypy37_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42f6ef9b640deb6f7d438e0a371aedd8bef6ddfde30683491b2e6f568b4e884e |
|
MD5 | 728fed615697f5b3c26f65636e5dc40a |
|
BLAKE2b-256 | 62fc9939c82a04ec3c377c3f5c677bae342603869e02d177e104980021c4d52f |
Close
Hashes for kiwisolver-1.4.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e8afdf533b613122e4bbaf3c1e42c2a5e9e2d1dd3a0a017749a7658757cb377 |
|
MD5 | 15f2f60071a5a1c442dd8579425f1589 |
|
BLAKE2b-256 | 0055cb9cb1194e1f52e3de2c2eea83ab9d868b9962222125e89e276dca6100e9 |
Close
Hashes for kiwisolver-1.4.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 484f2a5f0307bc944bc79db235f41048bae4106ffa764168a068d88b644b305d |
|
MD5 | 3934a197869736bad225ce86fcd49b23 |
|
BLAKE2b-256 | 1d50913390a6730df0940e54d90cf3debfba3521ad878112878359fe3fdde4a1 |
Close
Hashes for kiwisolver-1.4.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c380bb5ae20d829c1a5473cfcae64267b73aaa4060adc091f6df1743784aae0 |
|
MD5 | 86f1a9a63f883d31a654f0c65aad20d9 |
|
BLAKE2b-256 | 29c9b903a4e3d51006d2290a516d4aa3fc0f71d48228c9d4fa587b7c5a5ca02c |
Close
Hashes for kiwisolver-1.4.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ece2e12e4b57bc5646b354f436416cd2a6f090c1dadcd92b0ca4542190d7190 |
|
MD5 | a72f1ef0a71fecc19be586e85d463c4c |
|
BLAKE2b-256 | 3797cf42ffb6bd8d4f80cf8831b6786394941574cada008dd4b33886882c5edb |
Close
Hashes for kiwisolver-1.4.2-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1008346a7741620ab9cc6c96e8ad9b46f7a74ce839dbb8805ddf6b119d5fc6c2 |
|
MD5 | 67b739778a5e0f5110af40431e210908 |
|
BLAKE2b-256 | 4ff2ff28d082b06543cedaf80d9db1c9acf5b88a66e1b5be6a2f91c6fdd6e6e1 |
Close
Hashes for kiwisolver-1.4.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 262c248c60f22c2b547683ad521e8a3db5909c71f679b93876921549107a0c24 |
|
MD5 | b732ecf4a32314c5d6c275467e063a42 |
|
BLAKE2b-256 | a1522bda2cdb90c47c4e5fedb50ae2da2db4e726142e7361ada492266b579ee8 |
Close
Hashes for kiwisolver-1.4.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69b2d6c12f2ad5f55104a36a356192cfb680c049fe5e7c1f6620fc37f119cdc2 |
|
MD5 | ffd6afecef00c705c8b0cfffc8717536 |
|
BLAKE2b-256 | 09cc0ac08ca3ac58b65e165c8009f3d937f2562971d254fae015530a7b57a70a |
Close
Hashes for kiwisolver-1.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d2bb56309fb75a811d81ed55fbe2208aa77a3a09ff5f546ca95e7bb5fac6eff |
|
MD5 | 34475943c62727e6e0f36bf00d786975 |
|
BLAKE2b-256 | 959a57f319299918ed9bceda593fb0a8323fd6d409100278274baa87718ef482 |
Close
Hashes for kiwisolver-1.4.2-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e45e780a74416ef2f173189ef4387e44b5494f45e290bcb1f03735faa6779bf |
|
MD5 | 69e9d42426868c1052828b30a923ba89 |
|
BLAKE2b-256 | c66a4bf6e3b8eb795dee304a957e76c1e73f19a8609382a339e0d826164dfc3f |
Close
Hashes for kiwisolver-1.4.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1dcade8f6fe12a2bb4efe2cbe22116556e3b6899728d3b2a0d3b367db323eacc |
|
MD5 | 60324cdf95f8959356d08b09e418a52e |
|
BLAKE2b-256 | 5a7b45fcf5f54d93310594ce96013e666cc2f173eaceff151e528e01e48451b5 |
Close
Hashes for kiwisolver-1.4.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c032c41ae4c3a321b43a3650e6ecc7406b99ff3e5279f24c9b310f41bc98479 |
|
MD5 | 49628c1a86c99db34f1e80526ba46a1d |
|
BLAKE2b-256 | 54a18b30ab3e4b99ecff7fb3e6a3154d59068dfbd9203d90f35da59aca302bd2 |
Close
Hashes for kiwisolver-1.4.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b7f50a1a25361da3440f07c58cd1d79957c2244209e4f166990e770256b6b0b |
|
MD5 | 344633e94dade0bc90cd8d7b32fda9c5 |
|
BLAKE2b-256 | bbe2433fc93553fadb3451c49c451687845cb72dc4785c23f093ce21ec0ff892 |
Close
Hashes for kiwisolver-1.4.2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e395ece147f0692ca7cdb05a028d31b83b72c369f7b4a2c1798f4b96af1e3d8 |
|
MD5 | 75f75020975cf86f14665e57f407780d |
|
BLAKE2b-256 | a6759fb2ccc6712b19e895ef0e376cf7da485854efb09cbb411949b67dbab4b2 |
Close
Hashes for kiwisolver-1.4.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3e251e5c38ac623c5d786adb21477f018712f8c6fa54781bd38aa1c60b60fc2 |
|
MD5 | 0bef9419b1b93c00b1e0b8c5b1d64ccf |
|
BLAKE2b-256 | 49753a5f894ff63a2f13bd68d7962d01b9393bba139335cf9f47b2eb8739e63b |
Close
Hashes for kiwisolver-1.4.2-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e677cc3626287f343de751e11b1e8a5b915a6ac897e8aecdbc996cd34de753a0 |
|
MD5 | c40c02e2a755a7785d9a31efcd97a53f |
|
BLAKE2b-256 | bd43281ec1ad22fd20f9349f4c937407f474dfe3d48ee024d02dc3d8022fd7a4 |
Close
Hashes for kiwisolver-1.4.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f74f2a13af201559e3d32b9ddfc303c94ae63d63d7f4326d06ce6fe67e7a8255 |
|
MD5 | 2bbd3953467a4855715c0332f25f5fa6 |
|
BLAKE2b-256 | 87563a9079b03f2be8dc3b2d657c333c15e1e2170040305bf3b606cf87c41048 |
Close
Hashes for kiwisolver-1.4.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a830a03970c462d1a2311c90e05679da56d3bd8e78a4ba9985cb78ef7836c9f |
|
MD5 | 68f99096f5601d9068837c164fb1566e |
|
BLAKE2b-256 | 53665e2eba71512b46a2e425d192d1efbb1be0a6da8dfcc3e452ead44b7c61b3 |
Close
Hashes for kiwisolver-1.4.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ffbdb9a96c536f0405895b5e21ee39ec579cb0ed97bdbd169ae2b55f41d73219 |
|
MD5 | c2cbe9ddf8e7f95545ddf0a02273d24e |
|
BLAKE2b-256 | 6a1ab4960f572c02f7a7b78800fc61770920c9fb5787ed21c82528095ccd13bc |
Close
Hashes for kiwisolver-1.4.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89b57c2984f4464840e4b768affeff6b6809c6150d1166938ade3e22fbe22db8 |
|
MD5 | f11ccdd8a28c5fc1c0f00638435c3c47 |
|
BLAKE2b-256 | f6132a187e2280251f5c035da46e1706d4c8bd6ccc9f34e88c298cffbc5ba793 |
Close
Hashes for kiwisolver-1.4.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ff3033e43e7ca1389ee59fb7ecb8303abb8713c008a1da49b00869e92e3dd7c |
|
MD5 | dc8e54dd18367d29cebe7450c4c2cfc3 |
|
BLAKE2b-256 | a4ffff20ff5fdae327b59bcf343ab7de85bb35c5f64649ea40c2135bf5a1b48c |
Close
Hashes for kiwisolver-1.4.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71469b5845b9876b8d3d252e201bef6f47bf7456804d2fbe9a1d6e19e78a1e65 |
|
MD5 | 62b690a50d4aa91e99ba8016306492a1 |
|
BLAKE2b-256 | a1e635ef6fd30d85663caa4e52980a611c70b7310e66cb83953c4b258e11d3f4 |
Close
Hashes for kiwisolver-1.4.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa4d97d7d2b2c082e67907c0b8d9f31b85aa5d3ba0d33096b7116f03f8061261 |
|
MD5 | 095275481611b5c78b686deee9a3bb3f |
|
BLAKE2b-256 | 221ba367b9ad4f01c751063c7d09fa94df38f4e043fe63c4caa188b65474b74e |
Close
Hashes for kiwisolver-1.4.2-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91eb4916271655dfe3a952249cb37a5c00b6ba68b4417ee15af9ba549b5ba61d |
|
MD5 | aa821a355f05d78c3abde3e10d582cbc |
|
BLAKE2b-256 | 85067a40440de791012e7e601448adf4aef681e4945926d13fbb99a0d025d061 |
Close
Hashes for kiwisolver-1.4.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d98dca86f77b851350c250f0149aa5852b36572514d20feeadd3c6b1efe38d0 |
|
MD5 | 8c5174e302e3aa413efefbde05650834 |
|
BLAKE2b-256 | 972d32ae1ce44d5b514dce568a809b3bed15d60ee1501b9fa9853a0fee705b59 |
Close
Hashes for kiwisolver-1.4.2-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b6086aa6936865962b2cee0e7aaecf01ab6778ce099288354a7229b4d9f1408 |
|
MD5 | fe77daf24fc6f5f069de899f9e3d1b4b |
|
BLAKE2b-256 | 084740596187aa22a094b30e866570c66a0b497750078edd44122aab59a99fc5 |
Close
Hashes for kiwisolver-1.4.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 81237957b15469ea9151ec8ca08ce05656090ffabc476a752ef5ad7e2644c526 |
|
MD5 | 8d421a3b758a763c10ebbcb99ab9ea68 |
|
BLAKE2b-256 | 5807e18a0f74b60eb1833a52378587255b3b55c40919e510c3e61502da36bf37 |
Close
Hashes for kiwisolver-1.4.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1605c7c38cc6a85212dfd6a641f3905a33412e49f7c003f35f9ac6d71f67720 |
|
MD5 | 9d4cf0f716eddc7b30fcc4febcad9cb5 |
|
BLAKE2b-256 | 892c1b03d8ad14cd866eeb5c6dd4b31b5d00295eae4344f0b17390ffe978283a |
Close
Hashes for kiwisolver-1.4.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e6cda72db409eefad6b021e8a4f964965a629f577812afc7860c69df7bdb84a |
|
MD5 | a12dd299e27320914739aec6ebec70f7 |
|
BLAKE2b-256 | 4642c585df21d4ffcb1a69c184b668876b9dd96d3d4db6b13f6e6ea1d514535c |
Close
Hashes for kiwisolver-1.4.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 240c2d51d098395c012ddbcb9bd7b3ba5de412a1d11840698859f51d0e643c4f |
|
MD5 | 090f7611d733d87f3a8835e9a3987c57 |
|
BLAKE2b-256 | c11ac7557d40fc0f94aa589fed98196dac67b030fda63e1b3ea2f269351cc409 |
Close
Hashes for kiwisolver-1.4.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 240009fdf4fa87844f805e23f48995537a8cb8f8c361e35fda6b5ac97fcb906f |
|
MD5 | c0804f4d0d4b782f6771da7b1b9008b0 |
|
BLAKE2b-256 | 27479b9e76748d7d002bfcc59038a2cfadca9594df6e32748d2d152926907872 |
Close
Hashes for kiwisolver-1.4.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cbb5eb4a2ea1ffec26268d49766cafa8f957fe5c1b41ad00733763fae77f9436 |
|
MD5 | 9ee2b85f3954cb68cc9019cf2d0a3e1d |
|
BLAKE2b-256 | 33b937de7a59dd64d76752609962b8f53b1270b287ee150df58a6b6d1170d643 |
Close
Hashes for kiwisolver-1.4.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d1078ba770d6165abed3d9a1be1f9e79b61515de1dd00d942fa53bba79f01ae |
|
MD5 | c498cc498a6731293c5fdaa5dfd2df96 |
|
BLAKE2b-256 | 6d3ee37c9b03baee9f2d392214d8ed68f54996f6a789a4a0dedef8b976dc14e5 |
Close
Hashes for kiwisolver-1.4.2-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ec2e55bf31b43aabe32089125dca3b46fdfe9f50afbf0756ae11e14c97b80ca |
|
MD5 | 86bb213c8ce218e625839c557f15f49a |
|
BLAKE2b-256 | 11be560da5b0fde2c111784d7dabae1aef6d941840e98a167e2c09e3707fba73 |
Close
Hashes for kiwisolver-1.4.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be9a650890fb60393e60aacb65878c4a38bb334720aa5ecb1c13d0dac54dd73b |
|
MD5 | 24a307e1feb950046de408f48eebde55 |
|
BLAKE2b-256 | 9627cd4bb740e363eaf9241f26ca14504c5b2603f73d6fa1e3782913c3b0b701 |
Close
Hashes for kiwisolver-1.4.2-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4e8f072db1d6fb7a7cc05a6dbef8442c93001f4bb604f1081d8c2db3ca97159 |
|
MD5 | df1ea4de8fdbe0e23ff9c98c54d607be |
|
BLAKE2b-256 | 90c280b1e07c913ceeb08e7218f76850732b8d47a1e8cc39c8542d298bc5c4c2 |
Close
Hashes for kiwisolver-1.4.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c839bf28e45d7ddad4ae8f986928dbf5a6d42ff79760d54ec8ada8fb263e097c |
|
MD5 | d2144a5ac729556febd12a3ff4b93da5 |
|
BLAKE2b-256 | 2ff7adde3f3450e4385ecd24e6e7436fdcbcd864e65544966889b9e9be62e0a8 |
Close
Hashes for kiwisolver-1.4.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e348f1904a4fab4153407f7ccc27e43b2a139752e8acf12e6640ba683093dd96 |
|
MD5 | bf448916964381cda79984800bb99591 |
|
BLAKE2b-256 | d2e171cbe1d329df7f9108c567de176dd48ccfa499740e3d98b8a87118118de3 |
Close
Hashes for kiwisolver-1.4.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f88c4b8e449908eeddb3bbd4242bd4dc2c7a15a7aa44bb33df893203f02dc2d |
|
MD5 | 66e1cb0984e132eabf9f26340986a7b3 |
|
BLAKE2b-256 | dbcd8cd1d6c146aabec90e4401681d21d88bd720ae7daff3a9ddda0f56cc2296 |
Close
Hashes for kiwisolver-1.4.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c222f91a45da9e01a9bc4f760727ae49050f8e8345c4ff6525495f7a164c8973 |
|
MD5 | 468a56adefa28c55bff68604cc4feace |
|
BLAKE2b-256 | 51509a9a94afa26c50fc5d9127272737806990aa698c7a1c220b8e5075e70304 |
Close
Hashes for kiwisolver-1.4.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ae5a071185f1a93777c79a9a1e67ac46544d4607f18d07131eece08d415083a |
|
MD5 | 15e000b5f0b2e0880d14a0b0a1a01ec4 |
|
BLAKE2b-256 | 275edfa5f37d985b7697668f03ec28dc4dd201eee3249a7f552310f4b4ef142d |
Close
Hashes for kiwisolver-1.4.2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b978afdb913ca953cf128d57181da2e8798e8b6153be866ae2a9c446c6162f40 |
|
MD5 | cf4eb3df617eb179e0a75c61ea9ed2fa |
|
BLAKE2b-256 | 3d9bdc36fecb5374bdc1dd1b708198b91b27dc536761f78275bf7a1690f58df0 |