Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Cassowary Laravel Package

php-tui/cassowary

A PHP implementation of the Cassowary constraint solver for building flexible terminal interfaces. Add and remove linear equality and inequality constraints with priorities to automatically calculate widget sizes and positions in PHP-TUI layouts.

Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for interactive terminal experiences. This package is a dependency-level decision, not a product feature itself. It only becomes relevant if the roadmap includes a rich TUI (terminal dashboard, installer, admin console, or CLI tool with reflowing panels). Choosing it is effectively the buy side of that decision—you avoid writing your own layout engine.
  • Layout architecture for CLI/TUI surfaces. Cassowary is a constraint solver (the same family of algorithm behind Apple's Auto Layout). If product requirements include responsive terminal layouts—panes that resize, content that wraps, widgets that stay aligned at any terminal width—this package is the enabler. It supports the decision "do we invest in responsive TUI layout, or ship a fixed-grid CLI?"
  • Roadmap gating for php-tui investment. Adoption implies a commitment to the php-tui ecosystem. It is a signal that we are standardizing on that stack for terminal UI, which has downstream implications for hiring, developer tooling, and testing strategy.
  • Ecosystem/portfolio rationalization. If we maintain multiple CLI tools, this becomes a shared primitive. The decision is whether to standardize layout across tools on this solver or allow each team to hand-roll layout.
  • Use cases it unlocks: developer-facing dashboards, log viewers with multi-pane layouts, interactive installers, terminal-based monitoring, and any tool where content must adapt to unknown terminal dimensions.
  • What it does not support: it is not a UI framework, not a rendering engine, and not a web layout solution. It should not influence decisions about browser-based product surfaces (CSS/Flexbox/Grid own that space).

When to Consider This Package

Consider adopting when:

  • You are building or planning a PHP-based TUI and need dynamic, constraint-driven layout rather than hard-coded columns and rows.
  • You are already on the php-tui stack (or evaluating it) and want its layout primitives to work as intended—this is a supporting dependency, not a standalone win.
  • Your product has a small, fixed set of layout rules that must hold across arbitrary terminal sizes (e.g., minimum widths, proportional splits, alignment constraints).
  • You are comfortable owning a small, low-velocity dependency: 20 stars and an unknown/undisclosed repository point to a niche, likely low-maintenance package. Pin the version, vendor it, or wrap it behind an internal abstraction.
  • Licensing is a factor and MIT clears legal review—this is one of its strongest attributes.

Look elsewhere when:

  • The surface is web or mobile—use CSS Grid/Flexbox or platform layout systems; Cassowary-style solving is unnecessary complexity there.
  • Your CLI needs are simple, static output (tables, progress bars, one-shot commands). Hand-rolled formatting or existing table helpers will be cheaper and less risky.
  • You need active maintenance, SLAs, or vendor support. With 20 stars and an unknown repository, there is no meaningful support contract and bus-factor risk is real.
  • You are not on PHP or not using php-tui—adopting a constraint solver in isolation is almost never justified unless you are building a layout engine yourself.
  • Your team lacks familiarity with constraint-based layout mental models. The learning curve and debugging cost (constraint conflicts, under-constrained systems) are non-trivial and should be budgeted.

How to Pitch It (Stakeholders)

To executives: This is a small, MIT-licensed building block we would use only if we commit to polished, responsive terminal interfaces. It brings a battle-tested layout algorithm—the same class of solver used by Apple's Auto Layout—into our PHP tooling, letting us build adaptive terminal dashboards and installers without hand-coding layout logic. The risk profile is low (permissive license, isolated dependency, swappable behind an abstraction), but so is the immediate upside: it is an enabler, not a differentiator. Recommendation: approve as a dependency conditional on a TUI roadmap item; do not adopt speculatively. Vendor or pin it, and treat it as internally-owned infrastructure.

To engineering: Adopt this only as a supporting dependency of php-tui. Wrap it behind our own layout interface so we can swap it if maintenance stalls—20 stars and an undisclosed repo mean we should assume we may need to fork. Budget for the constraint-solving learning curve and for tests that assert layout behavior across terminal widths. Do not adopt it for simple CLIs or web surfaces.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox