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.
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.1.0.tar.gz
(30.8 kB
view hashes)
Built Distributions
Close
Hashes for kiwisolver-1.1.0-cp38-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b15d56a9cd40c52d7ab763ff0bc700edbb4e1a298dc43715ecccd605002cf11 |
|
MD5 | 27c29885591cff8d10a7170d40d2c469 |
|
BLAKE2b-256 | 73c8ec7ec2a9b5efd26cdb5a72bfff1cfc2eda11d981bb58a44351c7113e2e29 |
Close
Hashes for kiwisolver-1.1.0-cp38-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76275ee077772c8dde04fb6c5bc24b91af1bb3e7f4816fd1852f1495a64dad93 |
|
MD5 | 82df63cf8e84e8df8f042ce8ca421930 |
|
BLAKE2b-256 | b9b1118f3d5dee660bbe4548f06dcd0e1a10e45458326c3d0efad7dbbf28be24 |
Close
Hashes for kiwisolver-1.1.0-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 210d8c39d01758d76c2b9a693567e1657ec661229bc32eac30761fa79b2474b0 |
|
MD5 | dfcb0d5e548d1008901ae69f0a17d885 |
|
BLAKE2b-256 | 648ba70681c9a471f8187fed80d0aa9c9bb55ec3bf9daa50bd1cdc0c73d4910c |
Close
Hashes for kiwisolver-1.1.0-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d22702cadb86b6fcba0e6b907d9f84a312db9cd6934ee728144ce3018e715ee1 |
|
MD5 | fd33abd5f5b2df76d4d9f6a99c54471d |
|
BLAKE2b-256 | b86bf943e0a3a216599032e3c8cf9f637b3e3115ebd9e160bc222acb8afd28a6 |
Close
Hashes for kiwisolver-1.1.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 933df612c453928f1c6faa9236161a1d999a26cd40abf1dc5d7ebbc6dbfb8fca |
|
MD5 | 6a4e6cba7d1e6e4079025eb0d9fa5c95 |
|
BLAKE2b-256 | 22a78f7706e8c1e847b9816bbb2c4c341e2ae9568653f17956f839574ed62815 |
Close
Hashes for kiwisolver-1.1.0-cp37-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3fcf0819dc3fea58be1fd1ca390851bdb719a549850e708ed858503ff25d995 |
|
MD5 | eb28076767a96888d1ba702fd308f46e |
|
BLAKE2b-256 | c6eae5474014a13ab2dcb5056608e0716c600c3d8a8bcffb10ed55ccd6a42eb0 |
Close
Hashes for kiwisolver-1.1.0-cp37-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8944a16020c07b682df861207b7e0efcd2f46c7488619cb55f65882279119389 |
|
MD5 | 0d312de2edb8ef818d2d0e55d34818f6 |
|
BLAKE2b-256 | 206ae5fff2ed776ab0cd11d7c1d5d3e5e549952464a6f1b9084b7ecbd8341352 |
Close
Hashes for kiwisolver-1.1.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0c0a9f06872330d0dd31b45607197caab3c22777600e88031bfe66799e70bb0 |
|
MD5 | fcf1133bfe1c52f599d5f35809356bfe |
|
BLAKE2b-256 | 93f8518fb0bb89860eea6ff1b96483fbd9236d5ee991485d0f3eceff1770f654 |
Close
Hashes for kiwisolver-1.1.0-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c7ca4e449ac9f99b3b9d4693debb1d6d237d1542dd6a56b3305fe8a9620f883 |
|
MD5 | 788a62bf8fef2afb4172014632cae0a7 |
|
BLAKE2b-256 | 872b25e897aee57ec56f63d349a18d0290d256d08f5822c211e81c1e83cebcc2 |
Close
Hashes for kiwisolver-1.1.0-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9491578147849b93e70d7c1d23cb1229458f71fc79c51d52dce0809b2ca44eea |
|
MD5 | b993f5e48862d52e9149efd409a474bd |
|
BLAKE2b-256 | a8f8e42f71f7501d962ca42cf140c908503af62fe75bb0ce6cf5ae8fbbab8ed7 |
Close
Hashes for kiwisolver-1.1.0-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a02f6c3e229d0b7220bd74600e9351e18bc0c361b05f29adae0d10599ae0e326 |
|
MD5 | e0984ca8dec72e6847ac7c79325bb45f |
|
BLAKE2b-256 | df938bc9b52a8846be2b9572aa0a7c881930939b06e4abe1162da6a0430b794f |
Close
Hashes for kiwisolver-1.1.0-cp36-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a52e1b006bfa5be04fe4debbcdd2688432a9af4b207a3f429c74ad625022641 |
|
MD5 | 5defccf4afb1359fba280c230383a0ec |
|
BLAKE2b-256 | 644675ab48386cbd56065f5542360562be524ad599911455b6d95520cb118613 |
Close
Hashes for kiwisolver-1.1.0-cp36-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db1a5d3cc4ae943d674718d6c47d2d82488ddd94b93b9e12d24aabdbfe48caee |
|
MD5 | 58bc47440ff38d22c3d90a56086aa7ad |
|
BLAKE2b-256 | 1514a7ae5a7d5fae78b40dd0d388d83010330cba2df1721b1bd91a8b99044141 |
Close
Hashes for kiwisolver-1.1.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 400599c0fe58d21522cae0e8b22318e09d9729451b17ee61ba8e1e7c0346565c |
|
MD5 | b26c4c7558d24f70f3a30122034b1181 |
|
BLAKE2b-256 | f8a15742b56282449b1c0968197f63eae486eca2c35dcd334bab75ad524e0de1 |
Close
Hashes for kiwisolver-1.1.0-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f16814a4a96dc04bf1da7d53ee8d5b1d6decfc1a92a63349bb15d37b6a263dd9 |
|
MD5 | 2a767738191f17dd40f14ae7177be0c1 |
|
BLAKE2b-256 | 18b5af6fbe0a6716a945dcfb2d175fd4b106fbaeb69bd9561c191265dd612ab6 |
Close
Hashes for kiwisolver-1.1.0-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9105ce82dcc32c73eb53a04c869b6a4bc756b43e4385f76ea7943e827f529e4d |
|
MD5 | b115febd33c60ecbb00b9679df54408c |
|
BLAKE2b-256 | 5482984a657c3f247a229cc46d93c87a5fbbd852c7869fd7772ab4e04dedc53c |
Close
Hashes for kiwisolver-1.1.0-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | acc4df99308111585121db217681f1ce0eecb48d3a828a2f9bbf9773f4937e9e |
|
MD5 | 1372053abb60dd7cbdc713a5e1cce1c9 |
|
BLAKE2b-256 | 495dd1726d2a2fd471a69ef5014ca42812e1ccb8a13085c42bfcb238a5611f39 |
Close
Hashes for kiwisolver-1.1.0-cp35-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9733b7f64bd9f807832d673355f79703f81f0b3e52bfce420fc00d8cb28c6a6c |
|
MD5 | 9f7e50957e46c8f04bdb3c5d313a9151 |
|
BLAKE2b-256 | e82774677003aecfc85421f6b70db3e49b52e65f6497a5f2faf4e345588b3c61 |
Close
Hashes for kiwisolver-1.1.0-cp35-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 939f36f21a8c571686eb491acfffa9c7f1ac345087281b412d63ea39ca14ec4a |
|
MD5 | a65d78042a0ca923b4a448c2398f8d53 |
|
BLAKE2b-256 | 66c85800451b96689d61da8a2de4a7123086b5d14a58642ee1ee487d19a63e07 |
Close
Hashes for kiwisolver-1.1.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3a21a720791712ed721c7b95d433e036134de6f18c77dbe96119eaf7aa08004 |
|
MD5 | f342423ab1aa96739cd57cafa398e8d2 |
|
BLAKE2b-256 | ee184cd2e84c6aff0c6a50479118083d20b9e676e5175a913c0ea76d700fc244 |
Close
Hashes for kiwisolver-1.1.0-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 58e626e1f7dfbb620d08d457325a4cdac65d1809680009f46bf41eaf74ad0187 |
|
MD5 | a21c4a23cdd6d87fae00e110a2392382 |
|
BLAKE2b-256 | 37a412cd51e87f5a74953f14e8b63bff5e4b9627445da0f7ebe0f365d35959bd |
Close
Hashes for kiwisolver-1.1.0-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa716b9122307c50686356cfb47bfbc66541868078d0c801341df31dca1232a9 |
|
MD5 | 91091ab524e2761a95da02698529fee2 |
|
BLAKE2b-256 | b815dee24fc03c461023958f20dce4bd0c1c78a58e191142e037bfc30199f845 |
Close
Hashes for kiwisolver-1.1.0-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b2378ad387f49cbb328205bda569b9f87288d6bc1bf4cd683c34523a2341efe |
|
MD5 | 90bb7018af8d9b2af196e67855991909 |
|
BLAKE2b-256 | b5311e079d69c92ea37e993503e5e6a7d04975c2dfb0e7d8c0c924f47c51e76d |
Close
Hashes for kiwisolver-1.1.0-cp34-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 79bfb2f0bd7cbf9ea256612c9523367e5ec51d7cd616ae20ca2c90f575d839a2 |
|
MD5 | 8921cacf8d5d1f02da958d9da03d95a9 |
|
BLAKE2b-256 | 2059348ec95bf21031b7ac8f406324dbd400a973a2212c92df045a772269d985 |
Close
Hashes for kiwisolver-1.1.0-cp34-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26f4fbd6f5e1dabff70a9ba0d2c4bd30761086454aa30dddc5b52764ee4852b7 |
|
MD5 | fef5fa85ffc138f61bf2467a2b1622dd |
|
BLAKE2b-256 | c5e84e8f43fbdcd469ee6471d9d4cc14bf7880921d54785dd68cc3485ba6d1bf |
Close
Hashes for kiwisolver-1.1.0-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8aa7009437640beb2768bfd06da049bad0df85f47ff18426261acecd1cf00897 |
|
MD5 | a4d1b0c3fcb7ed80a1dd5677fca97eda |
|
BLAKE2b-256 | 047369c86f3c617ea80d25f4ba7af3e5ce9bad72a4d024c2e7dc94524f8cbefa |
Close
Hashes for kiwisolver-1.1.0-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d52e3b1868a4e8fd18b5cb15055c76820df514e26aa84cc02f593d99fef6707f |
|
MD5 | bad68e7d0adb58f6f7f24197bf138437 |
|
BLAKE2b-256 | f22ddcbdde7acaf48a743ef6f15d2b12033d3665afcf96233a78ee0a311f9006 |
Close
Hashes for kiwisolver-1.1.0-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 682e54f0ce8f45981878756d7203fd01e188cc6c8b2c5e2cf03675390b4534d5 |
|
MD5 | a76b831b1910f99c63a37899282c2bc2 |
|
BLAKE2b-256 | 357c4a256e39cf55d3b8c8a1fb98e4245eac91bf217194e8173648a1fce00983 |
Close
Hashes for kiwisolver-1.1.0-cp27-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b64916959e4ae0ac78af7c3e8cef4becee0c0e9694ad477b4c6b3a536de6a544 |
|
MD5 | 979c4f6cc7a36fc8ce60360bf111ded8 |
|
BLAKE2b-256 | 4e029c79d58f2e9f61d201f8390b5f51fdb0c19e777a241818b784f2a38ee013 |
Close
Hashes for kiwisolver-1.1.0-cp27-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47b8cb81a7d18dbaf4fed6a61c3cecdb5adec7b4ac292bddb0d016d57e8507d5 |
|
MD5 | aadf2f4bf111a2859729fffceda811d5 |
|
BLAKE2b-256 | 210b23b4e5ffd23833354cdd4257b526bab807addf2896725b2332eba81a03a2 |
Close
Hashes for kiwisolver-1.1.0-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05b5b061e09f60f56244adc885c4a7867da25ca387376b02c1efc29cc16bcd0f |
|
MD5 | 91223684a6a14e51672528491587617b |
|
BLAKE2b-256 | 3d78cb9248b2289ec31e301137cedbe4ca503a74ca87f88cdbfd2f8be52323bf |
Close
Hashes for kiwisolver-1.1.0-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8bf074363ce2babeb4764d94f8e65efd22e6a7c74860a4f05a6947afc020ff2 |
|
MD5 | 2fa84898e84cc5626b0c706532aec848 |
|
BLAKE2b-256 | 28b7c7dcca53f893b185a0e1a9b39e04c314c6d09aea2a042537445b300e0c2d |
Close
Hashes for kiwisolver-1.1.0-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2b22153870ca5cf2ab9c940d7bc38e8e9089fa0f7e5856ea195e1cf4ff43d5a |
|
MD5 | 33e70c46552a848093418a2ddeee2713 |
|
BLAKE2b-256 | 5b47d554741358645d1eb0adad6b1558094701ce9ed300f17f21c044f118b7de |
Close
Hashes for kiwisolver-1.1.0-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f790f8b3dff3d53453de6a7b7ddd173d2e020fb160baff578d578065b108a05f |
|
MD5 | 11bdd3c9474004d5f1cbfb6e81a19095 |
|
BLAKE2b-256 | e482a44f0f551a8b16ff6e4a713ab08215cbe5466541afaf4a5a737e073977f4 |
Close
Hashes for kiwisolver-1.1.0-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe51b79da0062f8e9d49ed0182a626a7dc7a0cbca0328f612c6ee5e4711c81e4 |
|
MD5 | 738c5d39c9caa8e503d648058d15f44d |
|
BLAKE2b-256 | 4b5e875e69701360f832d79458fbd36ac7cb4c126834347cff5a67a727064848 |
Close
Hashes for kiwisolver-1.1.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f4dd50874177d2bb060d74769210f3bce1af87a8c7cf5b37d032ebf94f0aca3 |
|
MD5 | bbdb9487c6b763c5c1fbb6e8197ce825 |
|
BLAKE2b-256 | 0d15ec5f70ac79f378ed0ef5ed8b71e8a04e382115426b2cda9a3ab5ffcf467f |