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.1.tar.gz
(97.1 kB
view hashes)
Built Distributions
Close
Hashes for kiwisolver-1.4.1-pp37-pypy37_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 568a207ea82473056a6ad0f30a3312d1a952a260fea35003a5f414e6dbff21f9 |
|
MD5 | a5f82a52aa595608500af5e9469577d1 |
|
BLAKE2b-256 | c5137a88d753d1ee27768e0fd3381ec4b8e6f3e9a8c75c2793565c6421fe2e61 |
Close
Hashes for kiwisolver-1.4.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2875a564d886369348158abd769970a673160cbcafaf7f04c2627e431009c715 |
|
MD5 | 118ae5403df9a4ec37e07844b87279c1 |
|
BLAKE2b-256 | 550f60d37b7d323ed405ee5071cdd29ba23ba2722c8f23f19eb72bef7255d950 |
Close
Hashes for kiwisolver-1.4.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 153beb19b0b560e9312e8ef066705a743897b2e1b8f909bf8204880876d06915 |
|
MD5 | 43bf4ce47d730c665a5f54638b4d76f2 |
|
BLAKE2b-256 | d974c40c78bbcf665889a288cd96df257019b77f9c37ae014d4db57012eb5a4e |
Close
Hashes for kiwisolver-1.4.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2bfc77a3009105266001b9eb10dceb4b7d20b0a6b7a4c2b4f1a992cd52e920b |
|
MD5 | 471e336a9a6cfcdf7a01d55754557b25 |
|
BLAKE2b-256 | 06f86d38e446f5272c221e436d7f9834f439f80940bb93a8b67757eb1cd7a9d0 |
Close
Hashes for kiwisolver-1.4.1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c619c4e9df2f2f227da1b3d510a51388116cd3a5c6fc25e4c9fe9834fa3e2bb |
|
MD5 | fd2bd8c90860ac131da4561a86bcbdc4 |
|
BLAKE2b-256 | 58779ec5d96abebeac53d1c4bb00acb44257faff4561ece841767f299eacf3bc |
Close
Hashes for kiwisolver-1.4.1-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36847fbd108f160162e549138fe04298fb6112b47a9c19e8318816506d8521ac |
|
MD5 | 5ac283c515332205376892f683687d11 |
|
BLAKE2b-256 | c9885a8b419304488015b72593d60d551c9c5a565511c1789a470ee7d7feea3a |
Close
Hashes for kiwisolver-1.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8a673c602f421714d6376cacedc3282afca1b60b6c8776df91f6dbb17686c2e |
|
MD5 | ba2d184d01913b307c306acf24851a04 |
|
BLAKE2b-256 | e1b7367364aaebf6951550b3acf177e87a481e212611a2ed03cb9c32d84ccfe7 |
Close
Hashes for kiwisolver-1.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d425fe1838a63f3dbaecb199d621ebf73ebf6e85d226524d0bee93d1eb427b73 |
|
MD5 | 966bd1c426159e021d4e23d59b6cb04b |
|
BLAKE2b-256 | a208b76fd5f0c114052b49e634d298f7a7a6c563782cf6527b9120d658ce0bf8 |
Close
Hashes for kiwisolver-1.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e513e0694ff792173b5ff8e13ac485c309ba6ae6381ae681576657782e284a20 |
|
MD5 | f11c7ba397a81f3379fd6676877a1326 |
|
BLAKE2b-256 | 4afa459aa52e716bf4f67d4e11f9b37b46bee761c5e3217178d9a3e82893c00e |
Close
Hashes for kiwisolver-1.4.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72892a97bb4b27488fd9f329670f21ac9b976cc326c16033e102006745e7a655 |
|
MD5 | faa30a578fb6f6dccc5e31b15c81f6d3 |
|
BLAKE2b-256 | 1415449d868d32202905cb86b2417954133426dd7129cd971a1297b93dca8fa6 |
Close
Hashes for kiwisolver-1.4.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8750fc3b56c6aee58a852e39903d953f657f68938dfebc6549c6d88b8d517a1b |
|
MD5 | f264fa1321112cf9f9a51d1e7cd18846 |
|
BLAKE2b-256 | ab97be5405add5b5e4e4f87f55480bab75adc4d1b3e84af0073c8787b7aeacc9 |
Close
Hashes for kiwisolver-1.4.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab9a77ef4f135bda3d1665f090dd5ac43044104f110cafb3342c74a55a33b67f |
|
MD5 | ec36964a0f705f4fbb6922a8c739573e |
|
BLAKE2b-256 | a563c223f6822ce6b14de0f6bff710b85f796aa03a51d5ccac6d81bc9a7ca5f6 |
Close
Hashes for kiwisolver-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f855bda104eb9eff30bf818f6bdaf606db25fa0c55a1bac9091270a0c170908 |
|
MD5 | 01189eedb5aeb5d1f33e911db59e145e |
|
BLAKE2b-256 | 8114a815bef7c8a41ff5130359d2fe1c894371449ccd4dfff9aa3d287f6d1e44 |
Close
Hashes for kiwisolver-1.4.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e91348c46db6e7bcdec778ff8e3d2fc2c7e16f3be72cac204d2f864374f5476f |
|
MD5 | 9614846a2e880eb72ec235331bc7d33a |
|
BLAKE2b-256 | 7228aa188984303dd8c2323f49b8ceab5f9121b96808ae660b4ef0e241f08334 |
Close
Hashes for kiwisolver-1.4.1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b332388df50ea05da9af32e532c45ef39f2c517780315663433ef1ee0bab107 |
|
MD5 | c3e7be8e73247f9fe33c6ba6b465d905 |
|
BLAKE2b-256 | 7b0c7c0807cb57df3de837fb381b1152ee08e8da6e546987e7bf7d48cd34c763 |
Close
Hashes for kiwisolver-1.4.1-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd87564e8ca896f00f56e7a2038f3b0b3b05e877f88d6e2c1f0d383611ce6d4d |
|
MD5 | aaebc4529e48249737203571b41ccab9 |
|
BLAKE2b-256 | 4711629e0fb0e85e426a5c830ff7560139e298ac2f965ff2eec7b135a94430cd |
Close
Hashes for kiwisolver-1.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57534131861c2382379f669601246691080ca960d038387bacdf6f3a9f088d36 |
|
MD5 | dede7504bd4606e7f21549ce46f27dda |
|
BLAKE2b-256 | 65132ec1adfaa492aa3dfc49ec5d6d9911daaf993b9e2e21a41078f569766cb2 |
Close
Hashes for kiwisolver-1.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1f6fdfb9d33211b6b6cb654e679dabc5f116b5d04ef931f9534b46184c42424 |
|
MD5 | fd844a0dac1092a258771a3cda03f76d |
|
BLAKE2b-256 | 905219e44fd6b7189109ae1999e438a1a43e80bda5c6dfbc25c01d73c9726dc7 |
Close
Hashes for kiwisolver-1.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89aa071d906eab9b4f843793398d2be169498d5de5940542b9683655468e4d20 |
|
MD5 | 2ced5ca08bb80f48e473585664d7e8c8 |
|
BLAKE2b-256 | 784621837ab89c5ca1236b7be78da8ebefa75d9845d475a82a09f889d8a95559 |
Close
Hashes for kiwisolver-1.4.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5d2621afdc5189932f39f2bd637a42078ae7f05c6bf135b27d93e218e66befa |
|
MD5 | d341405c961b442842aca17feaa26832 |
|
BLAKE2b-256 | 68e72ede00e15b8b6eec2b47601e33bcea2ce12f151702f6c04f02cb6be57bf0 |
Close
Hashes for kiwisolver-1.4.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a623cb8f831759c4fddfc64a1d8261ff459fb5ea6e7cd79f329ea6f08f8bbf4 |
|
MD5 | ca75f753696045892af3c7bc63a39c1f |
|
BLAKE2b-256 | 34bd89f9bcf6935d0b30ba6c0e256e44dd5f7caed169343edacfe88e672823b3 |
Close
Hashes for kiwisolver-1.4.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95e4e563341bddf1602b079b0bb88c326ee2a6ac4f1a8adf4331ace072241cf8 |
|
MD5 | 78bd5c141622a4f1dbdee407cf4eecaa |
|
BLAKE2b-256 | cdb5c3fdc588a64cfeac817959116f3be8c8b5c4931a6e37e3cdf5600458f2da |
Close
Hashes for kiwisolver-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d3ed8b1b8521452ff3ec20365939c49db50c7ba4e5440f5ad2b8cadc30a6e6a |
|
MD5 | 7cd939761049b7d8a2c1ce7b08e2827d |
|
BLAKE2b-256 | cc3a1a5306a571aaa4027732671a5aaf2d5a70ce88d0ff1c38ee45616f3bdef3 |
Close
Hashes for kiwisolver-1.4.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4b2a8878ef321a0d065e1e1b25c04d3b8ecf6d3ffd4705453534b83a0e395c9 |
|
MD5 | 3523037ee9aeb4d0f41c0f2078359b9e |
|
BLAKE2b-256 | 26c252485751e4d0b7858bb8cb8d1ac7c1f03d691b803d2adbbd0743d4297235 |
Close
Hashes for kiwisolver-1.4.1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34f9608eeb17601da74b0feb3ba079310f8d9f76be976a876f73661611a29dce |
|
MD5 | e4ba1faa776864c72ed36ab09a84c452 |
|
BLAKE2b-256 | a64ffb3b6ca71662037b64d8a9f904de190d9daaf9a8febed95ad5ea22ac6610 |
Close
Hashes for kiwisolver-1.4.1-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96ce02ae6c1b7d68510419071d902bfb7cf4851f25c3f4f828261dda7e7923ab |
|
MD5 | c3dc3bcf4143ba894845fdbffa5618aa |
|
BLAKE2b-256 | e9cf4faf0d0660271e547bbb1dc5fb5e72da6e65af52063b3554f672a1eac1cb |
Close
Hashes for kiwisolver-1.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98469a96a3a3ce15db480390752ae922a74c41b0edfbc32b943099d4c8b71bd8 |
|
MD5 | 21113e38e0187e2c1ac39da2bbfb664b |
|
BLAKE2b-256 | e6ed215e74d4899688b1c37dfea672d5831c56638cc1d01a909f646d1c5f4b36 |
Close
Hashes for kiwisolver-1.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cdbda04d2674be914f7237931b44db64eb6d0f510a35e057c920ebeb6679ade8 |
|
MD5 | 95ece5ae88cb24cde2f631213d3d89da |
|
BLAKE2b-256 | efbe798d834e0559f63606551012320bf3338f9740e7634d45bc1712a5e8024e |
Close
Hashes for kiwisolver-1.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a67496915fbd0973f11e34ebec4b5c510ca735fec0a2ec8af2a7d673db4bcde8 |
|
MD5 | 2483f24ffb96cad7fe7a55981f193ee6 |
|
BLAKE2b-256 | 628176ba9da71126e4504d0417479f6ba79d6bb0184e5b4073883f3cf8130f66 |
Close
Hashes for kiwisolver-1.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c33f30536e014beaaae391367a92632ec68b32cd21a186574c63fea4ba04d795 |
|
MD5 | fa2d78741642ccca83c6cd2eabc280bb |
|
BLAKE2b-256 | 1668b383ae1538ed517031b9b9027c5de4b50ccf5c6fff20dc9a04bd3b2b447f |
Close
Hashes for kiwisolver-1.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1988da8031d60786b775231927ef20a8a6e5d14e6ae720811dc17d8af9ca841 |
|
MD5 | 13f59098b1c0d993b04f671851986b60 |
|
BLAKE2b-256 | 5797c21ff14434c82b19274821820074dd1d5113585a81fef3e7859fc0412566 |
Close
Hashes for kiwisolver-1.4.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9266371990847f76d211aa321012b43278da66ee940d129cb1490e307c091f0d |
|
MD5 | 91db2e09390344665eb1379223a786d9 |
|
BLAKE2b-256 | 5ed9d3641b10e475c27da3a8e37cc335c9ae23416ef4b4172cfd38285398c48b |
Close
Hashes for kiwisolver-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2691c96915e73c492e742580ff744cd9ccd70d841607b1a0ef56c75c890d9c6 |
|
MD5 | 9fd6de04055b01e9e602fa0154bf6b3c |
|
BLAKE2b-256 | 8de550fe0f5f7499fa221af13d7d50d7296965a0f2dff2ebdb667b602cd46548 |
Close
Hashes for kiwisolver-1.4.1-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f04aa4fa556c9f615f5c7499c64bec1ccd76a22d106ca381ae741e9c77ff13d |
|
MD5 | 28587c3b30ad3f8969a58f8f8521f954 |
|
BLAKE2b-256 | fa2b1bc74ba62d9a9fd9ef254639650c79f78652e51b0ddffb4fbfe3144989a9 |
Close
Hashes for kiwisolver-1.4.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1b5ccc832de9be0602695bc78f5f9be427f7014daaa407897ada4e557f62b6e |
|
MD5 | a324bda0432711f02880c4a9a563635c |
|
BLAKE2b-256 | 30081c960ac89f0507fc01eb77471a639df06a85cb6006bc669770f93fdbd3ad |
Close
Hashes for kiwisolver-1.4.1-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e89de819d1809d0d7cc8fb62c94a1a77ee546c9286d2a11b60da6ea8335684b |
|
MD5 | f8cbb0e03ab48d9562e695879f04746d |
|
BLAKE2b-256 | c955fdb693985a46d1fcc831cd849b5aff17db9bb0e520d4c7906e59b542871e |
Close
Hashes for kiwisolver-1.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ac167d66c19f994eb16c31c2267d4b1c4b761811284254bcdc752fb29d24135 |
|
MD5 | e5c4ea6d5558ae31480d7655433a90c8 |
|
BLAKE2b-256 | 318659b53cf7e700e3584301b85209fdb337d6af9f035376eda13010e48c62fe |
Close
Hashes for kiwisolver-1.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6ba90a4e872ba133eb3ae75101e290f83b5f97374d30f15a7ff15346fda28a0 |
|
MD5 | 7ff9723c9e25861f4fbe4554bc7fd2b2 |
|
BLAKE2b-256 | 8a80600423dbdda43b66be23cbb6f3a6a51a7478100bbccdeaa5b52327878c86 |
Close
Hashes for kiwisolver-1.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0862085c5f687fa0cef88cd7a95a3ba038dca050c1997ecff54c0bb904c46bf5 |
|
MD5 | 74b47a398aa2f8fa8f51a7f357759efa |
|
BLAKE2b-256 | 3ffbccb687686620091e20ecd12501ad00f9d14ecaa21c8b9343cd7d0d691d5d |
Close
Hashes for kiwisolver-1.4.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d84926f60f4602ecc4e70d7e3b4a2addb046bcd842a1908e373ee4eec4e578d |
|
MD5 | 643831becbd70b8f1c9ffea36f12f368 |
|
BLAKE2b-256 | 47e64646a1a9d4121dd5f31a01f1dedc926bafa1d03bb5479bce699c87a169fd |
Close
Hashes for kiwisolver-1.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e39b982ffd3d6756ba748cc907ff015ba73777a94b4cc835c3557b9597c8c707 |
|
MD5 | 2c4fe69256bf2c6bec45af1d9918fb49 |
|
BLAKE2b-256 | 024ba8c6e5cc1fada4bc19c10bbc0a9e45aed52f3588b2be90c10f29eebbd791 |
Close
Hashes for kiwisolver-1.4.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 134130b2d325c0c90c1754d5819034784f014f21432dffc977b54ab7099e04b2 |
|
MD5 | c823c92dc710f625b579c8fee6de07b3 |
|
BLAKE2b-256 | 41eb9a37b9ccab6cd2d0da1e8228029223fa2fd617aaa55321d0e80b85275f43 |