Skip to main content

A fast implementation of the Cassowary constraint solver

Project description

https://travis-ci.org/nucleic/kiwi.svg?branch=master https://codecov.io/gh/nucleic/kiwi/branch/master/graph/badge.svg Documentation Status

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.

The version 1.1.0 of the Python bindings will be the last one to support Python 2, moving forward support will be limited to Python 3.5+.

Project details


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.2.0.tar.gz (52.1 kB view details)

Uploaded Source

Built Distributions

kiwisolver-1.2.0-cp38-none-win_amd64.whl (58.1 kB view details)

Uploaded CPython 3.8Windows x86-64

kiwisolver-1.2.0-cp38-none-win32.whl (43.4 kB view details)

Uploaded CPython 3.8Windows x86

kiwisolver-1.2.0-cp38-cp38-manylinux2014_aarch64.whl (84.1 kB view details)

Uploaded CPython 3.8

kiwisolver-1.2.0-cp38-cp38-manylinux1_x86_64.whl (92.2 kB view details)

Uploaded CPython 3.8

kiwisolver-1.2.0-cp38-cp38-manylinux1_i686.whl (85.6 kB view details)

Uploaded CPython 3.8

kiwisolver-1.2.0-cp38-cp38-macosx_10_9_x86_64.whl (60.4 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

kiwisolver-1.2.0-cp37-none-win_amd64.whl (57.8 kB view details)

Uploaded CPython 3.7Windows x86-64

kiwisolver-1.2.0-cp37-none-win32.whl (44.4 kB view details)

Uploaded CPython 3.7Windows x86

kiwisolver-1.2.0-cp37-cp37m-manylinux2014_aarch64.whl (82.5 kB view details)

Uploaded CPython 3.7m

kiwisolver-1.2.0-cp37-cp37m-manylinux1_x86_64.whl (88.7 kB view details)

Uploaded CPython 3.7m

kiwisolver-1.2.0-cp37-cp37m-manylinux1_i686.whl (84.5 kB view details)

Uploaded CPython 3.7m

kiwisolver-1.2.0-cp37-cp37m-macosx_10_9_x86_64.whl (60.5 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

kiwisolver-1.2.0-cp36-none-win_amd64.whl (57.8 kB view details)

Uploaded CPython 3.6Windows x86-64

kiwisolver-1.2.0-cp36-none-win32.whl (44.4 kB view details)

Uploaded CPython 3.6Windows x86

kiwisolver-1.2.0-cp36-cp36m-manylinux2014_aarch64.whl (82.5 kB view details)

Uploaded CPython 3.6m

kiwisolver-1.2.0-cp36-cp36m-manylinux1_x86_64.whl (88.7 kB view details)

Uploaded CPython 3.6m

kiwisolver-1.2.0-cp36-cp36m-manylinux1_i686.whl (84.5 kB view details)

Uploaded CPython 3.6m

kiwisolver-1.2.0-cp36-cp36m-macosx_10_9_x86_64.whl (60.5 kB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

Details for the file kiwisolver-1.2.0.tar.gz.

File metadata

  • Download URL: kiwisolver-1.2.0.tar.gz
  • Upload date:
  • Size: 52.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for kiwisolver-1.2.0.tar.gz
Algorithm Hash digest
SHA256 247800260cd38160c362d211dcaf4ed0f7816afb5efe56544748b21d6ad6d17f
MD5 9f53fabb361c04d76c5afc688652c814
BLAKE2b-256 62b8db619d97819afb52a3ff5ff6ad3f7de408cc83a8ec2dfb31a1731c0a97c2

See more details on using hashes here.

File details

Details for the file kiwisolver-1.2.0-cp38-none-win_amd64.whl.

File metadata

  • Download URL: kiwisolver-1.2.0-cp38-none-win_amd64.whl
  • Upload date:
  • Size: 58.1 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for kiwisolver-1.2.0-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 18d749f3e56c0480dccd1714230da0f328e6e4accf188dd4e6884bdd06bf02dd
MD5 189d8d3ffc436046a1cf846400a97296
BLAKE2b-256 3797cec83ff97d2c5190094e1331e32900b3c51623abbb1d8de229c119588375

See more details on using hashes here.

File details

Details for the file kiwisolver-1.2.0-cp38-none-win32.whl.

File metadata

  • Download URL: kiwisolver-1.2.0-cp38-none-win32.whl
  • Upload date:
  • Size: 43.4 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for kiwisolver-1.2.0-cp38-none-win32.whl
Algorithm Hash digest
SHA256 d069ef4b20b1e6b19f790d00097a5d5d2c50871b66d10075dab78938dc2ee2cf
MD5 064ccde879e9d0d07af40fa2b7918b6a
BLAKE2b-256 83c0b370ca17fd314f188d98194c0217054416401418df4928ca844dd5b4bb4e

See more details on using hashes here.

File details

Details for the file kiwisolver-1.2.0-cp38-cp38-manylinux2014_aarch64.whl.

File metadata

  • Download URL: kiwisolver-1.2.0-cp38-cp38-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 84.1 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3.post20200330 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.3

File hashes

Hashes for kiwisolver-1.2.0-cp38-cp38-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 38d05c9ecb24eee1246391820ed7137ac42a50209c203c908154782fced90e44
MD5 7dcee73a10ffffb157e73a8cb2e3f94c
BLAKE2b-256 e19f60ac351554e170b5a205fc215f2b7199d2702683218acad8c0a54259376f

See more details on using hashes here.

File details

Details for the file kiwisolver-1.2.0-cp38-cp38-manylinux1_x86_64.whl.

File metadata

  • Download URL: kiwisolver-1.2.0-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 92.2 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for kiwisolver-1.2.0-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 e586b28354d7b6584d8973656a7954b1c69c93f708c0c07b77884f91640b7657
MD5 bd2456e83d5a37bbe24e89126bb889dd
BLAKE2b-256 36acc8627c214954b18b197f137ee96bc99e1cc31913d80d7ad59fbab3b05945

See more details on using hashes here.

File details

Details for the file kiwisolver-1.2.0-cp38-cp38-manylinux1_i686.whl.

File metadata

  • Download URL: kiwisolver-1.2.0-cp38-cp38-manylinux1_i686.whl
  • Upload date:
  • Size: 85.6 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for kiwisolver-1.2.0-cp38-cp38-manylinux1_i686.whl
Algorithm Hash digest
SHA256 d52b989dc23cdaa92582ceb4af8d5bcc94d74b2c3e64cd6785558ec6a879793e
MD5 2865f86e6e07063c7053c37ae08d25a5
BLAKE2b-256 40dd5bc39013f1c52c7f72cabd3c2768e1de7a6904a18a6a90d3d763596374f3

See more details on using hashes here.

File details

Details for the file kiwisolver-1.2.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: kiwisolver-1.2.0-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 60.4 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for kiwisolver-1.2.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c31bc3c8e903d60a1ea31a754c72559398d91b5929fcb329b1c3a3d3f6e72113
MD5 25bb97f37f1d7cbad69b801d8830c4ae
BLAKE2b-256 f6d7d7516741c1043c3b9a55b9eb7762ec06bab4df1187705efd7dbb37d6f5ee

See more details on using hashes here.

File details

Details for the file kiwisolver-1.2.0-cp37-none-win_amd64.whl.

File metadata

  • Download URL: kiwisolver-1.2.0-cp37-none-win_amd64.whl
  • Upload date:
  • Size: 57.8 kB
  • Tags: CPython 3.7, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for kiwisolver-1.2.0-cp37-none-win_amd64.whl
Algorithm Hash digest
SHA256 4eadb361baf3069f278b055e3bb53fa189cea2fd02cb2c353b7a99ebb4477ef1
MD5 537d93d41e984551caeb3e3eb5cc7891
BLAKE2b-256 7ee5d8bd2d063da3b6761270f29038d2bb9785c88ff385009bf61589cde6e6ef

See more details on using hashes here.

File details

Details for the file kiwisolver-1.2.0-cp37-none-win32.whl.

File metadata

  • Download URL: kiwisolver-1.2.0-cp37-none-win32.whl
  • Upload date:
  • Size: 44.4 kB
  • Tags: CPython 3.7, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for kiwisolver-1.2.0-cp37-none-win32.whl
Algorithm Hash digest
SHA256 03662cbd3e6729f341a97dd2690b271e51a67a68322affab12a5b011344b973c
MD5 7408144df3a1764be5944c0216487304
BLAKE2b-256 12405fa3b161a602848754d1e760b77f47497ed2c2f0a6401474b96b00d885e3

See more details on using hashes here.

File details

Details for the file kiwisolver-1.2.0-cp37-cp37m-manylinux2014_aarch64.whl.

File metadata

  • Download URL: kiwisolver-1.2.0-cp37-cp37m-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 82.5 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3.post20200330 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.3

File hashes

Hashes for kiwisolver-1.2.0-cp37-cp37m-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 63f55f490b958b6299e4e5bdac66ac988c3d11b7fafa522800359075d4fa56d1
MD5 720d711b16fe81c306b39c91d879844c
BLAKE2b-256 304245dc9db6b370a23acb70ad001a8a0272d93310eb8fb4e86a462028c87eb9

See more details on using hashes here.

File details

Details for the file kiwisolver-1.2.0-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: kiwisolver-1.2.0-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 88.7 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for kiwisolver-1.2.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 603162139684ee56bcd57acc74035fceed7dd8d732f38c0959c8bd157f913fec
MD5 0defdacd4b2fd7634f7ece3955527cfb
BLAKE2b-256 31b96202dcae729998a0ade30e80ac00f616542ef445b088ec970d407dfd41c0

See more details on using hashes here.

File details

Details for the file kiwisolver-1.2.0-cp37-cp37m-manylinux1_i686.whl.

File metadata

  • Download URL: kiwisolver-1.2.0-cp37-cp37m-manylinux1_i686.whl
  • Upload date:
  • Size: 84.5 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for kiwisolver-1.2.0-cp37-cp37m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 c955791d80e464da3b471ab41eb65cf5a40c15ce9b001fdc5bbc241170de58ec
MD5 6fd511cfc2b98f8b892d6857380befaf
BLAKE2b-256 72ae11ccfd6902d980d4d5c2af1c8c42462f70b376d499ab9e340ac852872e07

See more details on using hashes here.

File details

Details for the file kiwisolver-1.2.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: kiwisolver-1.2.0-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 60.5 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for kiwisolver-1.2.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7cc095a4661bdd8a5742aaf7c10ea9fac142d76ff1770a0f84394038126d8fc7
MD5 2117bd0f5138e1fc0759a782c67fde32
BLAKE2b-256 81c59831f281c6fb57945e83fdf39ff036cacfdc84aa1988bb3150b330533050

See more details on using hashes here.

File details

Details for the file kiwisolver-1.2.0-cp36-none-win_amd64.whl.

File metadata

  • Download URL: kiwisolver-1.2.0-cp36-none-win_amd64.whl
  • Upload date:
  • Size: 57.8 kB
  • Tags: CPython 3.6, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for kiwisolver-1.2.0-cp36-none-win_amd64.whl
Algorithm Hash digest
SHA256 556da0a5f60f6486ec4969abbc1dd83cf9b5c2deadc8288508e55c0f5f87d29c
MD5 7dcc3e716bdb14df93b31bb7bed8fc5c
BLAKE2b-256 2a1ef53031838c75cef71086ab7fc0dea1853d811ba3ec72465d782877223f09

See more details on using hashes here.

File details

Details for the file kiwisolver-1.2.0-cp36-none-win32.whl.

File metadata

  • Download URL: kiwisolver-1.2.0-cp36-none-win32.whl
  • Upload date:
  • Size: 44.4 kB
  • Tags: CPython 3.6, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for kiwisolver-1.2.0-cp36-none-win32.whl
Algorithm Hash digest
SHA256 60a78858580761fe611d22127868f3dc9f98871e6fdf0a15cc4203ed9ba6179b
MD5 e0e351fe1be39257f8f7788ead6e95b0
BLAKE2b-256 528c5475071d82ea5f218ec2b8635f46d8917d2e745089b1d845c5bb6d500ab2

See more details on using hashes here.

File details

Details for the file kiwisolver-1.2.0-cp36-cp36m-manylinux2014_aarch64.whl.

File metadata

  • Download URL: kiwisolver-1.2.0-cp36-cp36m-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 82.5 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3.post20200330 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.3

File hashes

Hashes for kiwisolver-1.2.0-cp36-cp36m-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 be046da49fbc3aa9491cc7296db7e8d27bcf0c3d5d1a40259c10471b014e4e0c
MD5 e140506d54163759ce502fed979bafc8
BLAKE2b-256 7bb99958c0b2b5d8f4a3a27846470052c93892fafe50452f7622edebba2a9862

See more details on using hashes here.

File details

Details for the file kiwisolver-1.2.0-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: kiwisolver-1.2.0-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 88.7 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for kiwisolver-1.2.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 fccefc0d36a38c57b7bd233a9b485e2f1eb71903ca7ad7adacad6c28a56d62d2
MD5 d2d72b39d608f99ccf9e06d019afd672
BLAKE2b-256 ae23147de658aabbf968324551ea22c0c13a00284c4ef49a77002e91f79657b7

See more details on using hashes here.

File details

Details for the file kiwisolver-1.2.0-cp36-cp36m-manylinux1_i686.whl.

File metadata

  • Download URL: kiwisolver-1.2.0-cp36-cp36m-manylinux1_i686.whl
  • Upload date:
  • Size: 84.5 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for kiwisolver-1.2.0-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 efcf3397ae1e3c3a4a0a0636542bcad5adad3b1dd3e8e629d0b6e201347176c8
MD5 a400f1ea57d297271bfdc87e3772b6a6
BLAKE2b-256 576ea6d597a846551be8408baaf12188ec87e30592bdf0704647d8a9d903f4f1

See more details on using hashes here.

File details

Details for the file kiwisolver-1.2.0-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: kiwisolver-1.2.0-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 60.5 kB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for kiwisolver-1.2.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 443c2320520eda0a5b930b2725b26f6175ca4453c61f739fef7a5847bd262f74
MD5 751e8162d68aad3474b0708bcc3c61a4
BLAKE2b-256 06b2f7e88efd6323df9ae604f1ff35c629f266d4f424f2a244a7e1d5560c5d96

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page