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.4.tar.gz
(97.1 kB
view hashes)
Built Distributions
Close
Hashes for kiwisolver-1.4.4-pp37-pypy37_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ecb1fa0db7bf4cff9dac752abb19505a233c7f16684c5826d1f11ebd9472b871 |
|
MD5 | 2ab3480487cf6200e8a3123da5136c12 |
|
BLAKE2-256 | 75a627a96c414200846c9a13ac16635c747b0d2bd8c391f22f31cc9e638e1849 |
Close
Hashes for kiwisolver-1.4.4-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da152d8cdcab0e56e4f45eb08b9aea6455845ec83172092f09b0e077ece2cf7a |
|
MD5 | e790980999c33cf9dfaaa4de46ba6091 |
|
BLAKE2-256 | c505e24f2cb424a34d78d65fe5dfd930419fd42d8fcf83e796ed187d42ac034c |
Close
Hashes for kiwisolver-1.4.4-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 787518a6789009c159453da4d6b683f468ef7a65bbde796bcea803ccf191058d |
|
MD5 | 4166c0b1e229853781cab89cd98ac7a0 |
|
BLAKE2-256 | 6a0f7923176faa67482b028f242353e1939361cc90b089ebfff007503d008e7c |
Close
Hashes for kiwisolver-1.4.4-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91672bacaa030f92fc2f43b620d7b337fd9a5af28b0d6ed3f77afc43c4a64b5a |
|
MD5 | 6a0f25f73a1462d10eaf9939ed75485b |
|
BLAKE2-256 | 73c97e5ea6d8dd9a3b91e957ada019a149f54ef294275f784451991de4d4d297 |
Close
Hashes for kiwisolver-1.4.4-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3fe20f63c9ecee44560d0e7f116b3a747a5d7203376abeea292ab3152334d004 |
|
MD5 | 1ffb03b6597462bf3436f3b96a2cf1af |
|
BLAKE2-256 | 68202ce1186ef4edf47281faf58f6dd72a1fcd2be1fc66514bd2d220097bdcd1 |
Close
Hashes for kiwisolver-1.4.4-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e92a513161077b53447160b9bd8f522edfbed4bd9759e4c18ab05d7ef7e49408 |
|
MD5 | 563d8bf4f6a6ed551d543a06bb2fbc49 |
|
BLAKE2-256 | cf9352792dd319af16897c248e5e053a806ef83648212e66ec3738aaf7238094 |
Close
Hashes for kiwisolver-1.4.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a68b62a02953b9841730db7797422f983935aeefceb1679f0fc85cbfbd311c32 |
|
MD5 | 7e9fae8548d9c7ebee491064330a7fb5 |
|
BLAKE2-256 | b7e0ee57a00f6bf411e54cf0521eceab306d1c606c5a640ee1b54951d2bd41b7 |
Close
Hashes for kiwisolver-1.4.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ed58b8acf29798b036d347791141767ccf65eee7f26bde03a71c944449e53de |
|
MD5 | ccf9a5becedfb9e9d9bbff931c68a665 |
|
BLAKE2-256 | cb56a7c407d437f82eb92954b618bbc71af28a3d88634901f69500d186209a85 |
Close
Hashes for kiwisolver-1.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8ad8285b01b0d4695102546b342b493b3ccc6781fc28c8c6a1bb63e95d22f09 |
|
MD5 | 6d219cb46462178f298441a9ceb31fc8 |
|
BLAKE2-256 | c7cf40d5c5d4f91b2d5cb3aadad9a1074964749a19e1054cef3d491cfa73a25e |
Close
Hashes for kiwisolver-1.4.4-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7577c1987baa3adc4b3c62c33bd1118c3ef5c8ddef36f0f2c950ae0b199e100d |
|
MD5 | 2d6956dc2797f2b6a51c28946023e9a3 |
|
BLAKE2-256 | 790f5cc4ca3df66c49817944b9a1c7343ba70aefffc868ddf651d7839cc5dffd |
Close
Hashes for kiwisolver-1.4.4-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | abbe9fa13da955feb8202e215c4018f4bb57469b1b78c7a4c5c7b93001699938 |
|
MD5 | bc0def3767074cd9fc8981c8050b692c |
|
BLAKE2-256 | a9fd049c39c4c501775f5439ba8e08bf298d5af828b99c703e265c5150311ccd |
Close
Hashes for kiwisolver-1.4.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c79ebe8f3676a4c6630fd3f777f3cfecf9289666c84e775a67d1d358578dc2e3 |
|
MD5 | 0fba2b48fea5479982b08e0cc11705d2 |
|
BLAKE2-256 | eec299b2d61dc246844498e68571c589e37ed7a866a4914cb2da2d66d141b596 |
Close
Hashes for kiwisolver-1.4.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10ee06759482c78bdb864f4109886dff7b8a56529bc1609d4f1112b93fe6423c |
|
MD5 | 1dfb9c73d32911416a53b0c11f4b932e |
|
BLAKE2-256 | ebdbb7ebaa2d35f9fb55f3ff8328b5e9dc049f6524dca737cea13e6235ab191d |
Close
Hashes for kiwisolver-1.4.4-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f5e60fabb7343a836360c4f0919b8cd0d6dbf08ad2ca6b9cf90bf0c76a3c4f6 |
|
MD5 | bc466539141150e21891aae9ad3ea4d5 |
|
BLAKE2-256 | 83b7f6386940bec20b842a097697a0396a0941cbc5262d4b619dee2cc123502b |
Close
Hashes for kiwisolver-1.4.4-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba59c92039ec0a66103b1d5fe588fa546373587a7d68f5c96f743c3396afc04b |
|
MD5 | fc1ea600beb50ac4954115ceccd8529b |
|
BLAKE2-256 | 49b9edd9b69e1f2a8339347bcfcfbb14ce19db4a81158d01d8fd26fc3a088109 |
Close
Hashes for kiwisolver-1.4.4-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da7e547706e69e45d95e116e6939488d62174e033b763ab1496b4c29b76fabea |
|
MD5 | 92c8e92eebb9efc1e8628104b13a1965 |
|
BLAKE2-256 | c258a49e7fa3e09254102339d5c10ae10eaf76fd13b8a124accf518fbf2eb3fc |
Close
Hashes for kiwisolver-1.4.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 968f44fdbf6dd757d12920d63b566eeb4d5b395fd2d00d29d7ef00a00582aac9 |
|
MD5 | d3477e7634755baf52384f9cc3badcc4 |
|
BLAKE2-256 | b7f412806263b2ef28704319b902c08e7aaf8c6931255a02d76b01c1cac66ab6 |
Close
Hashes for kiwisolver-1.4.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ea39b0ccc4f5d803e3337dd46bcce60b702be4d86fd0b3d7531ef10fd99a1ac |
|
MD5 | e759ddd01faa4d6953f412b95347b9d5 |
|
BLAKE2-256 | a5d2d55d40e3a65cc9cdf6b311862fba48905c1d59851594eaecc381727e0883 |
Close
Hashes for kiwisolver-1.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc8d3bd6c72b2dd9decf16ce70e20abcb3274ba01b4e1c96031e0c4067d1e7cd |
|
MD5 | 80fd620c28ec320594d89a57cd0ac174 |
|
BLAKE2-256 | 4d9108eaa0f13fe644ae913cb157e9599ce64b64a99620df3beb0b142690e264 |
Close
Hashes for kiwisolver-1.4.4-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c43e1e1206cd421cd92e6b3280d4385d41d7166b3ed577ac20444b6995a445f |
|
MD5 | 131517e97b964e5298fb80d977a67a77 |
|
BLAKE2-256 | a436c414d75be311ce97ef7248edcc4fc05afae2998641bf6b592d43a9dee581 |
Close
Hashes for kiwisolver-1.4.4-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | efda5fc8cc1c61e4f639b8067d118e742b812c930f708e6667a5ce0d13499e29 |
|
MD5 | f62989b0f55522c359ca91cf50995566 |
|
BLAKE2-256 | 15cd5b0a188f94b82b46d43023dc47354c5bb21fa4539858cd06df80889451c5 |
Close
Hashes for kiwisolver-1.4.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b533558eae785e33e8c148a8d9921692a9fe5aa516efbdff8606e7d87b9d5824 |
|
MD5 | 86c1e1e219a39d11034bcdfc62b33661 |
|
BLAKE2-256 | 26f31daa54509332dff966e1493fe0d5b573e0e11a56d301323ec6c667a53142 |
Close
Hashes for kiwisolver-1.4.4-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0a71d85ecdd570ded8ac3d1c0f480842f49a40beb423bb8014539a9f32a5897 |
|
MD5 | 6d4d7734bedd1d2ddd12fe5e36455e5f |
|
BLAKE2-256 | f2e27ed98290955aa83598d0e5672d88bbc193192cdcd23d3a9ed7e536cf8e55 |
Close
Hashes for kiwisolver-1.4.4-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c808594c88a025d4e322d5bb549282c93c8e1ba71b790f539567932722d7bd8 |
|
MD5 | 70fe906f78b9318e11670182a4695508 |
|
BLAKE2-256 | 2b1fa7cbeae4d9b0af9ffb8f139d4d4c8493716deb125cd23d8fabb6cd20783e |
Close
Hashes for kiwisolver-1.4.4-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5bce61af018b0cb2055e0e72e7d65290d822d3feee430b7b8203d8a855e78766 |
|
MD5 | 96be3d735d516c0b887afa24f3674747 |
|
BLAKE2-256 | 4f0559b34e788bf2b45c7157c3d898d567d28bc42986c1b6772fb1af329eea0d |
Close
Hashes for kiwisolver-1.4.4-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75facbe9606748f43428fc91a43edb46c7ff68889b91fa31f53b58894503a191 |
|
MD5 | c910577ce367c5e17e3512d74c46003b |
|
BLAKE2-256 | 5a77c8e94936cbafe39a7f454a365cf7fe5eec33bbd16c9301e10dea44ed24db |
Close
Hashes for kiwisolver-1.4.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad881edc7ccb9d65b0224f4e4d05a1e85cf62d73aab798943df6d48ab0cd79a1 |
|
MD5 | efbc42e8d7f51e61a90f54d5ff96098c |
|
BLAKE2-256 | 26326bd586b28b3736aa0997a24e5ebecebc83b2fdb86f29990875f7a2b83e4d |
Close
Hashes for kiwisolver-1.4.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d1573129aa0fd901076e2bfb4275a35f5b7aa60fbfb984499d661ec950320b0 |
|
MD5 | 7ce2ee170a6f73d0c1dd01e3c314902b |
|
BLAKE2-256 | cb16cd9684584d1f2ea5df14c483e6d9a121886817da3dc8740ccc7e6a170541 |
Close
Hashes for kiwisolver-1.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c97528e64cb9ebeff9701e7938653a9951922f2a38bd847787d4a8e498cc83ae |
|
MD5 | d62107bb80f7f22eec81266c54c2c3e9 |
|
BLAKE2-256 | 8ee06e6afbbdc7cac65e25e5407922f8e3997e53eda6bab70e8fa6f7765de60d |
Close
Hashes for kiwisolver-1.4.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e407cb4bd5a13984a6c2c0fe1845e4e41e96f183e5e5cd4d77a857d9693494c |
|
MD5 | 2a9fba984568cb08190e2cd7c93957bc |
|
BLAKE2-256 | 867a6b438da7534dacd232ed4e19f74f4edced2cda9494d7e6536f54edfdf4a5 |
Close
Hashes for kiwisolver-1.4.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b428ef021242344340460fa4c9185d0b1f66fbdbfecc6c63eff4b7c29fad429d |
|
MD5 | f476cfe79fd55fc6b6dd1ce3eb4eb498 |
|
BLAKE2-256 | 52a493745b44a80fbddb8deec9c5f17193bfea1fce8d128c18b9489edc6e5917 |
Close
Hashes for kiwisolver-1.4.4-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9f39e2f049db33a908319cf46624a569b36983c7c78318e9726a4cb8923b26c |
|
MD5 | 8e157fa398eabb6a7ae642aae4a9fbb4 |
|
BLAKE2-256 | 967f63c0f0c775a9fc2b59684806d0a1da62f790adca4c0f5f3106059349f8a0 |
Close
Hashes for kiwisolver-1.4.4-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4f270de01dd3e129a72efad823da90cc4d6aafb64c410c9033aba70db9f1ff0 |
|
MD5 | a13bb4fe981c6dd51b3f7c572ccb80bb |
|
BLAKE2-256 | 64e2a8764238ea5595ab392b78cd23c2b07044133fddc8b3acdd60efbcc1af99 |
Close
Hashes for kiwisolver-1.4.4-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 841293b17ad704d70c578f1f0013c890e219952169ce8a24ebc063eecf775454 |
|
MD5 | 4b2e467b7ed9e66f2a7bf1eca428d880 |
|
BLAKE2-256 | ca0dddabc096cebfdcade8c77e42b7a30650fbd8024dfd2d01ab4036a7f0adfe |
Close
Hashes for kiwisolver-1.4.4-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03baab2d6b4a54ddbb43bba1a3a2d1627e82d205c5cf8f4c924dc49284b87166 |
|
MD5 | 7cd8fddd2168ac12719e9f07df59dcb1 |
|
BLAKE2-256 | 039311790e8e81b89acd3a1c8a6b501f8a05b1c41beee0990582699cdda29557 |
Close
Hashes for kiwisolver-1.4.4-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a553dadda40fef6bfa1456dc4be49b113aa92c2a9a9e8711e955618cd69622e3 |
|
MD5 | b5ca48d509112b883f6041d5536bc817 |
|
BLAKE2-256 | 87d8c46267cbc3799a7609ace482f64a4e242fe95d67f562a05bc80c0e59d4a0 |
Close
Hashes for kiwisolver-1.4.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0611a0a2a518464c05ddd5a3a1a0e856ccc10e67079bb17f265ad19ab3c7597 |
|
MD5 | 99d7a17cd88e721a054cb9ec06848321 |
|
BLAKE2-256 | 75e237f78c092e2e11fe559b9cfca1172fca0c20ca9b521ec806be9679251f1d |
Close
Hashes for kiwisolver-1.4.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 02f79693ec433cb4b5f51694e8477ae83b3205768a6fb48ffba60549080e295b |
|
MD5 | 736dfaf30a8af5ebe5b25588cca697ac |
|
BLAKE2-256 | 08142ee2b7013f6c7f92f76ee9e8368736410c24f404e70b0f882758493bdeec |
Close
Hashes for kiwisolver-1.4.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41dae968a94b1ef1897cb322b39360a0812661dba7c682aa45098eb8e193dbdf |
|
MD5 | 1e70a7e61bb6125db313e031b08cfebf |
|
BLAKE2-256 | a9f1ef22058926af3f3588370b6ef09193790c42790f517e91a6103cc5ec28f0 |
Close
Hashes for kiwisolver-1.4.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1041feb4cda8708ce73bb4dcb9ce1ccf49d553bf87c3954bdfa46f0c3f77252c |
|
MD5 | aac160365f6d3e10110229816556d418 |
|
BLAKE2-256 | ab8f8dbe2d4efc4c0b08ec67d6efb7cc31fbfd688c80afad85f65980633b0d37 |
Close
Hashes for kiwisolver-1.4.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db5283d90da4174865d520e7366801a93777201e91e79bacbac6e6927cbceede |
|
MD5 | 49333f2a50dd29d1b63eea2c9447cf33 |
|
BLAKE2-256 | bc453022994d464bf1cf836cbca3fe94e0badc19e8b89baff82d412396cca19c |
Close
Hashes for kiwisolver-1.4.4-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62ac9cc684da4cf1778d07a89bf5f81b35834cb96ca523d3a7fb32509380cbf6 |
|
MD5 | 9e2d489574f9a3f3d922f42d868a0ee4 |
|
BLAKE2-256 | e1f79ffb2a9e67a38707bab30f8591adaa8f137abe91a83d667400c81bb024bc |