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 use cases 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.6+.
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.3.1.tar.gz
(53.1 kB
view hashes)
Built Distributions
Close
Hashes for kiwisolver-1.3.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6563ccd46b645e966b400bb8a95d3457ca6cf3bba1e908f9e0927901dfebeb1 |
|
MD5 | adc41da5b2de6681e40c9322306dda62 |
|
BLAKE2b-256 | 213289a9c4efd7c8c1ed89652aa4779e3333ee73bc6fca38927954769e47fb71 |
Close
Hashes for kiwisolver-1.3.1-pp36-pypy36_pp73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 401a2e9afa8588589775fe34fc22d918ae839aaaf0c0e96441c0fdbce6d8ebe6 |
|
MD5 | c2cf365771ec8efdc190cd4fff99aa2e |
|
BLAKE2b-256 | 985c61fc378a1a6e16c288b5e05b3ce541f88c93146716f0096727ef120b94b3 |
Close
Hashes for kiwisolver-1.3.1-pp36-pypy36_pp73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33449715e0101e4d34f64990352bce4095c8bf13bed1b390773fc0a7295967b3 |
|
MD5 | 5b602fd9bc72f66c997e9abb5ffde184 |
|
BLAKE2b-256 | 5065d493d158f20fc0a6540fda7ea1f47939679f233e774ff04beefc408e7726 |
Close
Hashes for kiwisolver-1.3.1-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0cd53f403202159b44528498de18f9285b04482bab2a6fc3f5dd8dbb9352e30d |
|
MD5 | 815c22b5931f4454baafc62d22a961ba |
|
BLAKE2b-256 | fb0394a66e27829934d8d34d40c9250c23c940b8e792bf3d1048f1aceaf3def9 |
Close
Hashes for kiwisolver-1.3.1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9edd0110a77fc321ab090aaa1cfcaba1d8499850a12848b81be2222eab648f6 |
|
MD5 | 07a6ca0b36c8ffa146e2ee2daa1a3004 |
|
BLAKE2b-256 | f036c73afc541a7b88e7f91b1c409fba64b244b4b42f0fd9cdb80e8cdf88664f |
Close
Hashes for kiwisolver-1.3.1-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5518d51a0735b1e6cee1fdce66359f8d2b59c3ca85dc2b0813a8aa86818a030 |
|
MD5 | 80c0bb30cce8ef6985df91341910ea36 |
|
BLAKE2b-256 | 0d01ac6d8f3dc5e6bde4a729d0e40b9076499e441b25677e3c35bb03a51e5791 |
Close
Hashes for kiwisolver-1.3.1-cp39-cp39-manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | acef3d59d47dd85ecf909c359d0fd2c81ed33bdff70216d3956b463e12c38a54 |
|
MD5 | a7725e492986c0038e65f3c677b5edf0 |
|
BLAKE2b-256 | e7bda538ec48dd6da9506a7dd8e7942ab75ac7cd67163ff6b759eccff0bd78f2 |
Close
Hashes for kiwisolver-1.3.1-cp39-cp39-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c3e6455341008a054cccee8c5d24481bcfe1acdbc9add30aa95798e95c65621 |
|
MD5 | 2e630ed0dbcead25d89610a208509365 |
|
BLAKE2b-256 | faa08b4a72bf3a247b44174865bcb062e4e16c1bb094d287f4dea25a03e15464 |
Close
Hashes for kiwisolver-1.3.1-cp39-cp39-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 834ee27348c4aefc20b479335fd422a2c69db55f7d9ab61721ac8cd83eb78882 |
|
MD5 | 5b82f40f46efaaf809b26084de3f82dd |
|
BLAKE2b-256 | 469636f152864795099e6dc1b2a0cc94f8a8990252a971137eaafc65797e133b |
Close
Hashes for kiwisolver-1.3.1-cp39-cp39-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a53d27d0c2a0ebd07e395e56a1fbdf75ffedc4a05943daf472af163413ce9598 |
|
MD5 | cafe947e3d6cc835f3dd4cfbcbd2fed7 |
|
BLAKE2b-256 | 3d631166d8e8a6b8df04e7989f8c0804f185610eb70aa6ef61b7f30085199f6a |
Close
Hashes for kiwisolver-1.3.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 792e69140828babe9649de583e1a03a0f2ff39918a71782c76b3c683a67c6dfd |
|
MD5 | fdd813337e97b0fc265ce69512cf080b |
|
BLAKE2b-256 | 6f12bd35c7e8bdd733850128bec5d62d85b0d48f8c98faa73d288105b7ad07b5 |
Close
Hashes for kiwisolver-1.3.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50af681a36b2a1dee1d3c169ade9fdc59207d3c31e522519181e12f1b3ba7000 |
|
MD5 | ce35f9eee544593c54ea32e6bb9d1fec |
|
BLAKE2b-256 | 443368de462c07aa262c711a17ee169279cdd332fefdbf78cc9b3ff320615ebe |
Close
Hashes for kiwisolver-1.3.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d9d8d9b31aa8c2d80a690693aebd8b5e2b7a45ab065bb78f1609995d2c79240 |
|
MD5 | b7ff3029869ea7755dc03d9eb946f6e9 |
|
BLAKE2b-256 | 6051a31c4b58f82a454957d8ab0e6b85402b1d923c16d8cb36714ef22d63aec8 |
Close
Hashes for kiwisolver-1.3.1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 44a62e24d9b01ba94ae7a4a6c3fb215dc4af1dde817e7498d901e229aaf50e4e |
|
MD5 | e17d3a64fca6e11192b3a195dbe410d4 |
|
BLAKE2b-256 | a8be9a8f1a59c94f99544366fd3680373ccd6cf6dcd504e02d504486e9f0943b |
Close
Hashes for kiwisolver-1.3.1-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c08e95114951dc2090c4a630c2385bef681cacf12636fb0241accdc6b303fd81 |
|
MD5 | 08ad61d9a9621bbb3621b7c9fccdbbad |
|
BLAKE2b-256 | 57f664bde0adeb2e406613818f41f9ad3d0ef694fb8772f8b37122ee9e6b31b1 |
Close
Hashes for kiwisolver-1.3.1-cp38-cp38-manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5989db3b3b34b76c09253deeaf7fbc2707616f130e166996606c284395da3f18 |
|
MD5 | 70ad1c4bedd9983e13cb0b7fbbc29488 |
|
BLAKE2b-256 | 52e5cf3e9541e307d1ef90203b5a499cb6251cc6af7a8c69be28aea911118eb3 |
Close
Hashes for kiwisolver-1.3.1-cp38-cp38-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a357fd4f15ee49b4a98b44ec23a34a95f1e00292a139d6015c11f55774ef10de |
|
MD5 | b6b434ffb89727cfe33c3f5d2f57a4d5 |
|
BLAKE2b-256 | de2b619d5cb29a3a6fc1f75b35204096c6995768960cdaf90c394592dfe8c738 |
Close
Hashes for kiwisolver-1.3.1-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78751b33595f7f9511952e7e60ce858c6d64db2e062afb325985ddbd34b5c131 |
|
MD5 | 58b3408cf84e17f487612cc55492b633 |
|
BLAKE2b-256 | 990441e831621ddec54f99e9e3693b8d4f2f583d7f3ee8df33bf9a7d6bf764de |
Close
Hashes for kiwisolver-1.3.1-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 563c649cfdef27d081c84e72a03b48ea9408c16657500c312575ae9d9f7bc1c3 |
|
MD5 | 01f5db0dcd6cfb9904866de719a7af5e |
|
BLAKE2b-256 | d5d67dc1b62d7541e5fcbd9eeead14e60edafb851367227c7a05b1fcbf641e03 |
Close
Hashes for kiwisolver-1.3.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef6eefcf3944e75508cdfa513c06cf80bafd7d179e14c1334ebdca9ebb8c2c66 |
|
MD5 | 6afc972ffbeed7d303bdf907aeef7a40 |
|
BLAKE2b-256 | a0430ae7ee3344af5f6147ff3162bf0eabc2931fb52f48a368bcfaad746903be |
Close
Hashes for kiwisolver-1.3.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31dfd2ac56edc0ff9ac295193eeaea1c0c923c0355bf948fbd99ed6018010b72 |
|
MD5 | f5e323bea14c39d7f59bd785040fed5b |
|
BLAKE2b-256 | 0c89cdd752da48b66f31a0732902cd9800e6d232ce65f6cc4e83f9d9d2bd99aa |
Close
Hashes for kiwisolver-1.3.1-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24cc411232d14c8abafbd0dddb83e1a4f54d77770b53db72edcfe1d611b3bf11 |
|
MD5 | 7c4e440c74e2389d316c4fa43c0f2682 |
|
BLAKE2b-256 | 3f3b49920955370077915e0c6fcfb9bfb3cc0f8ebe7ce8e1c5527a7901955672 |
Close
Hashes for kiwisolver-1.3.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8be8d84b7d4f2ba4ffff3665bcd0211318aa632395a1a41553250484a871d454 |
|
MD5 | f073740d26383f0c18aef2fb35eef622 |
|
BLAKE2b-256 | b2556681ac2cc8de9bb612b1a777606e5beef240bf63aaa6cb03f44af5f42a77 |
Close
Hashes for kiwisolver-1.3.1-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72c99e39d005b793fb7d3d4e660aed6b6281b502e8c1eaf8ee8346023c8e03bc |
|
MD5 | 42e647514eec699cb5ba76599de79269 |
|
BLAKE2b-256 | d470903be3896b0c28bd191f25d0279f1d88e60f494c53699ee62c529416eeeb |
Close
Hashes for kiwisolver-1.3.1-cp37-cp37m-manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e1bc12fb773a7b2ffdeb8380609f4f8064777877b2225dec3da711b421fda31 |
|
MD5 | d3500e686cc1182031de3db7bb89f62f |
|
BLAKE2b-256 | 1146217f4abd8454c1c60670e4759214c033f6adec55458e690926b759205cc3 |
Close
Hashes for kiwisolver-1.3.1-cp37-cp37m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8fd0f1ae9d92b42854b2979024d7597685ce4ada367172ed7c09edf2cef9cb8 |
|
MD5 | 8482bef91c9784c23933bfc1a6271bea |
|
BLAKE2b-256 | 81efe363e51382266fac799fd56e12b469a485cd4d29c56b35143405615f40ec |
Close
Hashes for kiwisolver-1.3.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca3820eb7f7faf7f0aa88de0e54681bddcb46e485beb844fcecbcd1c8bd01689 |
|
MD5 | 9bf25ba4f951436687b75702d230f416 |
|
BLAKE2b-256 | d246231de802ade4225b76b96cffe419cf3ce52bbe92e3b092cf12db7d11c207 |
Close
Hashes for kiwisolver-1.3.1-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b38694dcdac990a743aa654037ff1188c7a9801ac3ccc548d3341014bc5ca278 |
|
MD5 | 17279a0f04e795d8d7b63d7171462209 |
|
BLAKE2b-256 | 41eeec6a7ebcaf34058d868dcd5f28e80164b8d868567d1df286f97d5cd7d934 |
Close
Hashes for kiwisolver-1.3.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 232c9e11fd7ac3a470d65cd67e4359eee155ec57e822e5220322d7b2ac84fbf0 |
|
MD5 | b6f2bf96ef55889116cdc8c15e2bba30 |
|
BLAKE2b-256 | 499bf45d28fc09ff54287d60c7e0056b306b7c9abe5d23ac8f5686f7c940d30b |
Close
Hashes for kiwisolver-1.3.1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf8b574c7b9aa060c62116d4181f3a1a4e821b2ec5cbfe3775809474113748d4 |
|
MD5 | 305137e2264062d7f22320b167c1599a |
|
BLAKE2b-256 | 6edf1250c32ab3b532c32a7e47c1cd240faba98f75b1b5150939b10e9bffb758 |
Close
Hashes for kiwisolver-1.3.1-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 225e2e18f271e0ed8157d7f4518ffbf99b9450fca398d561eb5c4a87d0986dd9 |
|
MD5 | 56d33bfc515d640ebec7ddf0b8296104 |
|
BLAKE2b-256 | da24a4efae6da972b654350601c7b8a8979ad81ae944c7692934871acf5554e2 |
Close
Hashes for kiwisolver-1.3.1-cp36-cp36m-manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f6ccd3dd0b9739edcf407514016108e2280769c73a85b9e59aa390046dbf08b |
|
MD5 | 58a98e230b8a05637f40011df888d057 |
|
BLAKE2b-256 | 82c1cde062a2244b7e06a68f51f0d28d3637dcf6a6371c1780a0d9ee9fffb253 |
Close
Hashes for kiwisolver-1.3.1-cp36-cp36m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8d6f8db88049a699817fd9178782867bf22283e3813064302ac59f61d95be05 |
|
MD5 | 7d21e5c61a3354afebccbc6db9a9e887 |
|
BLAKE2b-256 | 294f2c16c5f4057ca218b5e8c488e2fff41ceaca761aaaace81fb0d3ab3d651a |
Close
Hashes for kiwisolver-1.3.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a7a7dbff17e66fac9142ae2ecafb719393aaee6a3768c9de2fd425c63b53e21 |
|
MD5 | b94b822d0f57c5d48483d7066b06ce84 |
|
BLAKE2b-256 | a71bcbd8ae738719b5f41592a12057ef5442e2ed5f5cb5451f8fc7e9f8875a1a |
Close
Hashes for kiwisolver-1.3.1-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3155d828dec1d43283bd24d3d3e0d9c7c350cdfcc0bd06c0ad1209c1bbc36d0 |
|
MD5 | 41f105ae32c359b82b4ddf0160d1e495 |
|
BLAKE2b-256 | de0e3844ee73c5068dd15c6b9a0de8d81cbb5f1a797806ca437768ed60a2b987 |
Close
Hashes for kiwisolver-1.3.1-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd34fbbfbc40628200730bc1febe30631347103fc8d3d4fa012c21ab9c11eca9 |
|
MD5 | f75aa04423866674f93186c0862ee3d7 |
|
BLAKE2b-256 | 944ef90bcdd273194230f9c08ec63a6d0874ef36ff5c077f487f761221361cc4 |