skillfed

kiwisolver

A fast implementation of the Cassowary constraint solver

kiwisolver Permissive license ========================= The Kiwi licensing terms ========================= Kiwi is licensed under the terms of the Modified BSD License (also known as New or Revised BSD), as follows: Copyright (c)… (full text in the JSON record) Active 778 v1.5.0 released

Install

kiwisolver on PyPI

pip

pip install kiwisolver

uv

uv add kiwisolver

poetry

poetry add kiwisolver

Package facts

License ========================= The Kiwi licensing terms ========================= Kiwi is licensed under the terms of the Modified BSD License (also known as New or Revised BSD), as follows: Copyright (c)… (full text in the JSON record) (permissive)
Python support supports the current Python release (>=3.10)
Install friction medium — platform-specific wheel
Runtime dependencies none
Maintenance actively maintained — 157 days since the last release
Last repo commit
First released
Popularity one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13)
Known vulnerabilities none known (OSV.dev, checked 2026-08-13)

Evidence: kiwisolver-1.5.0-cp310-cp310-macosx_10_9_universal2.whl; kiwisolver-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl; kiwisolver-1.5.0-cp310-cp310-macosx_11_0_arm64.whl; kiwisolver-1.5.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl; kiwisolver-1.5.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; kiwisolver-1.5.0-cp310-cp310-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl; kiwisolver-1.5.0-cp310-cp310-manylinux_2_24_s390x.manylinux_2_28_s390x.whl; kiwisolver-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl; kiwisolver-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl; kiwisolver-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl; kiwisolver-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl; kiwisolver-1.5.0-cp310-cp310-win_amd64.whl; kiwisolver-1.5.0-cp310-cp310-win_arm64.whl; kiwisolver-1.5.0-cp311-cp311-macosx_10_9_universal2.whl; kiwisolver-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl; kiwisolver-1.5.0-cp311-cp311-macosx_11_0_arm64.whl; kiwisolver-1.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; kiwisolver-1.5.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; kiwisolver-1.5.0-cp311-cp311-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl; kiwisolver-1.5.0-cp311-cp311-manylinux_2_24_s390x.manylinux_2_28_s390x.whl

License :: OSI Approved :: BSD LicenseProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: GraalPyProgramming Language :: Python :: Implementation :: PyPy

About kiwisolver

from the package's own PyPI description — quoted content, verbatim

Welcome to Kiwi

Continuous Integration (image) Documentation building (image) codecov (image) Documentation Status (image)

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.

How to use

C++...

Read as markdown · JSON record · Source repository · Docs

AI interpretation — verify before relying

AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page

Kiwisolver is a fast C++ implementation of the Cassowary constraint solving algorithm, accessible via Python bindings, for solving systems of linear constraints efficiently.

Medium install friction due to compiled C++ extensions; however, prebuilt wheels cover Python 3.10–3.14 across macOS, Linux (x86_64, ARM, ppc64le, s390x), and Windows. Actively maintained with recent releases and no known vulnerabilities.

Licensed under the Modified BSD License (permissive), allowing commercial and proprietary use with minimal restrictions—only requiring copyright notice retention and disclaimer inclusion.

Usage

pip install kiwisolver==1.5.0

import kiwisolver

solver = kiwisolver.Solver()
x = kiwisolver.Variable('x')
y = kiwisolver.Variable('y')
solver.addConstraint(x + y == 10)
solver.addConstraint(x - y == 4)
solver.updateVariables()
print(f'x: {x.value()}, y: {y.value()}')

Verdict: Kiwisolver is a mature, well-maintained constraint solver with broad platform support and no security issues. Its permissive Modified BSD License and active development (last commit 2026-08-04) make it suitable for production use. Medium install friction is offset by comprehensive prebuilt wheels.

Needs verification

  • Whether Python 3.14 wheels are fully tested or represent forward compatibility only
  • Performance benchmarks against competing constraint solvers in real-world scenarios
  • Memory overhead for large constraint systems relative to the documented 5x improvement claim
  • Exact API surface and method signatures for the Python bindings
constraint solver pythoncassowary algorithmlinear constraint solvingui layout constraintsfast constraint programmingconstraint satisfaction problem

Similar packages