Files
ljkiwi/kiwi
John K. Luebs 359c31a0af Replace kiwi Constraint and Variable types
Going to replace these types since they are so stupid simple and
the originals are not conducive to integrating efficienctly outside
C++. We need a well defined way to get a pointer/reference to the
shared data. The proxy objects frustrate that, but they are
what is baked into the library. The public interface is not altered
except for the ability to access and construct from pointers.
2024-02-25 05:13:08 -06:00
..

Welcome to Kiwi
===============

.. image:: https://github.com/nucleic/kiwi/workflows/Continuous%20Integration/badge.svg
    :target: https://github.com/nucleic/kiwi/actions
.. image:: https://github.com/nucleic/kiwi/workflows/Documentation%20building/badge.svg
    :target: https://github.com/nucleic/kiwi/actions
.. image:: https://codecov.io/gh/nucleic/kiwi/branch/main/graph/badge.svg
  :target: https://codecov.io/gh/nucleic/kiwi
.. image:: https://readthedocs.org/projects/kiwisolver/badge/?version=latest
    :target: https://kiwisolver.readthedocs.io/en/latest/?badge=latest
    :alt: 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 <https://constraints.cs.washington.edu/solvers/cassowary-tochi.pdf>`_.
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.7+.