PHPackages                             sugarcraft/sugarcraft - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. sugarcraft/sugarcraft

ActiveMetapackage[Utility &amp; Helpers](/categories/utility)

sugarcraft/sugarcraft
=====================

PHP ports of the Charmbracelet TUI ecosystem (umbrella monorepo) — install all 46 libraries at once.

30PHPCI failing

Since Jul 1Pushed 3w agoCompare

[ Source](https://github.com/detain/sugarcraft)[ Packagist](https://packagist.org/packages/sugarcraft/sugarcraft)[ RSS](/packages/sugarcraft-sugarcraft/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependenciesVersions (61)Used By (0)

SugarCraft
==========

[](#sugarcraft)

 [![SugarCraft — sweet to build, fun to use](media/social-preview.png)](media/social-preview.png)

[![CI](https://github.com/detain/sugarcraft/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/detain/sugarcraft/actions/workflows/ci.yml)[![PTY matrix](https://github.com/detain/sugarcraft/actions/workflows/pty-matrix.yml/badge.svg?branch=master)](https://github.com/detain/sugarcraft/actions/workflows/pty-matrix.yml)[![codecov](https://camo.githubusercontent.com/6cd28d707ecff049515ba02f30230fc505a447de73a67457b5925a0151a208b4/68747470733a2f2f636f6465636f762e696f2f67682f64657461696e2f737567617263726166742f6272616e63682f6d61737465722f67726170682f62616467652e737667)](https://app.codecov.io/gh/detain/sugarcraft)[![License](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](LICENSE)[![PHP](https://camo.githubusercontent.com/e78ffc83837c0d12647811a7fd1910c3cbeae04988de94bb4fd5b67e0874696a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d254532253839254135382e312d3838393262662e737667)](https://www.php.net/)[![PRs Welcome](https://camo.githubusercontent.com/a8682df10a7b8901533257926128264c8582d536d4a6e0eae2648f57b86aae12/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5052732d77656c636f6d652d6666356638372e737667)](CONTRIBUTING.md)

PHP ports of the [Charmbracelet](https://charm.sh) TUI ecosystem (plus [bubblezone](https://github.com/lrstanley/bubblezone), [ntcharts](https://github.com/NimbleMarkets/ntcharts), and a small SugarCraft-flavoured sweetshop of original libraries) — composer-installable, PHP 8.1+, async on ReactPHP.

🌐 **Website:** [sugarcraft.github.io](https://sugarcraft.github.io/) — library matrix, quickstart, comparison page.

```
composer require sugarcraft/sugarcraft
```

What's in the box
-----------------

[](#whats-in-the-box)

Fifty libraries grouped by layer:

LibraryRole[![](media/icons/candy-core.png)](media/icons/candy-core.png)**[SugarCraft](candy-core/)**Elm-architecture TUI runtime — `Model` / `Msg` / `Cmd` / `Program` (incl. cursed cell-diff renderer). Port of [bubbletea](https://github.com/charmbracelet/bubbletea).[![](media/icons/candy-ansi.png)](media/icons/candy-ansi.png)**[CandyAnsi](candy-ansi/)**ECMA-48 VT500 state machine — ANSI byte-stream parser with abstract Handler interface. Extraction from candy-vt.[![](media/icons/candy-buffer.png)](media/icons/candy-buffer.png)**[CandyBuffer](candy-buffer/)**Cell-grid value objects — immutable Buffer (2-D cell grid) and Cell (rune/style/link/width). Shared foundation for all rendering; Buffer::diff() ships in step-26.[![](media/icons/candy-async.png)](media/icons/candy-async.png)**[CandyAsync](candy-async/)**Shared async vocabulary — CancellationToken, Subscriptions, AsyncOps helpers (withTimeout, retry, debounce, throttle). Pioneering — no upstream parallel.[![](media/icons/candy-sprinkles.png)](media/icons/candy-sprinkles.png)**[CandySprinkles](candy-sprinkles/)**Declarative styling + layout — `Style`, `Border`, `Table`, `List`, `Tree`, `Layout::join`, `Place`, `Canvas` (multi-layer compositor). Port of [lipgloss](https://github.com/charmbracelet/lipgloss).[![](media/icons/candy-testing.png)](media/icons/candy-testing.png)**[CandyTesting](candy-testing/)**Test harness for TEA programs — ProgramSimulator, golden-file assertions, snapshot helpers. Pioneering what bubble-tea issue #1654 never shipped.[![](media/icons/honey-bounce.png)](media/icons/honey-bounce.png)**[HoneyBounce](honey-bounce/)**Damped spring physics + Newtonian projectile sim. Port of [harmonica](https://github.com/charmbracelet/harmonica).[![](media/icons/candy-zone.png)](media/icons/candy-zone.png)**[CandyZone](candy-zone/)**Mouse-zone tracker — wrap rendered chunks, get back bounding boxes. Port of [bubblezone](https://github.com/lrstanley/bubblezone).[![](media/icons/sugar-bits.png)](media/icons/sugar-bits.png)**[SugarBits](sugar-bits/)**14 components: TextInput, TextArea, ItemList, Table, Viewport, FilePicker, Progress, Spinner, Cursor, Help, Key, Paginator, Stopwatch, Timer. Port of [bubbles](https://github.com/charmbracelet/bubbles).[![](media/icons/candy-vt.png)](media/icons/candy-vt.png)**[CandyVt](candy-vt/)**Virtual terminal emulator — ANSI byte stream → cell grid + cursor + mode state. Port of [charmbracelet/x/vt](https://github.com/charmbracelet/x/tree/main/vt).[![](media/icons/candy-vcr.png)](media/icons/candy-vcr.png)**[CandyVcr](candy-vcr/)**Record + replay candy-core sessions — JSONL/YAML cassettes, `Program::withRecorder()`, `Player` with byte + cell-grid assertions, CLI. Port of [charmbracelet/x/vcr](https://github.com/charmbracelet/x/tree/main/vcr).[![](media/icons/candy-pty.png)](media/icons/candy-pty.png)**[CandyPty](candy-pty/)**Pseudo-terminal primitive — `Pty::open()` master/slave round-trip via FFI to libc; spawn/resize/non-blocking I/O land in PR2-PR5. Linux + macOS only. Port of [charmbracelet/x/xpty](https://github.com/charmbracelet/x/tree/main/xpty).[![](media/icons/candy-forms.png)](media/icons/candy-forms.png)**[CandyForms](candy-forms/)**Foundation lib for form primitives — TextInput, TextArea, ItemList, Viewport, FilePicker, Field interface, Confirm, Form (extracted from sugar-bits + sugar-prompt).[![](media/icons/candy-focus.png)](media/icons/candy-focus.png)**[CandyFocus](candy-focus/)**Focus-ring state machine — ordered focusable regions with Tab/Shift-Tab traversal. Original — no upstream parallel.[![](media/icons/sugar-gallery.png)](media/icons/sugar-gallery.png)**[SugarGallery](sugar-gallery/)**Poster grids &amp; rails for media TUIs — virtualized PosterGrid, Rail carousel, PosterCard. Original — no upstream parallel.[![](media/icons/sugar-charts.png)](media/icons/sugar-charts.png)**[SugarCharts](sugar-charts/)**Canvas + Sparkline, Bar, Line, Heatmap, Scatter, TimeSeries, Streamline, Waveline, OHLC, Picture (Sixel/Kitty/iTerm2). Port of [ntcharts](https://github.com/NimbleMarkets/ntcharts).[![](media/icons/sugar-prompt.png)](media/icons/sugar-prompt.png)**[SugarPrompt](sugar-prompt/)**Form library — Note, Input, Confirm, Select, MultiSelect, Text, FilePicker; multi-page Groups; 6 themes. Port of [huh](https://github.com/charmbracelet/huh).[![](media/icons/candy-shine.png)](media/icons/candy-shine.png)**[CandyShine](candy-shine/)**Markdown → ANSI renderer with word-wrap, OSC 8 hyperlinks, 8 themes. Port of [glamour](https://github.com/charmbracelet/glamour).[![](media/icons/candy-kit.png)](media/icons/candy-kit.png)**[CandyKit](candy-kit/)**CLI presentation helpers — StatusLine, Banner, Section, Stage, HelpText. Port of [fang](https://github.com/charmbracelet/fang).[![](media/icons/candy-wish.png)](media/icons/candy-wish.png)**[CandyWish](candy-wish/)**SSH server middleware — Logger, Auth, RateLimit, BubbleTea (mount a SugarCraft Program over `ForceCommand`). Port of [wish](https://github.com/charmbracelet/wish).[![](media/icons/candy-metrics.png)](media/icons/candy-metrics.png)**[CandyMetrics](candy-metrics/)**Telemetry primitives — counters, gauges, histograms with InMemory / JSON / StatsD / Prometheus textfile / Multi backends, plus a CandyWish session middleware. Port of [promwish](https://github.com/charmbracelet/promwish).[![](media/icons/candy-log.png)](media/icons/candy-log.png)**[CandyLog](candy-log/)**Colorful leveled logger — Debug / Info / Warn / Error / Fatal with structured context, Text / JSON / Logfmt formatters, sub-loggers, and StandardLogAdapter. Port of [log](https://github.com/charmbracelet/log)[![](media/icons/candy-palette.png)](media/icons/candy-palette.png)**[CandyPalette](candy-palette/)**Terminal color profile detection + ANSI / ANSI256 / TrueColor conversion. StandardColors and ProfileWriter. Port of [colorprofile](https://github.com/charmbracelet/colorprofile)[![](media/icons/candy-lister.png)](media/icons/candy-lister.png)**[CandyLister](candy-lister/)**Tree/list view with box-drawing prefixes, cursor navigation, word-wrap, and filter-as-you-type. Port of [bubblelister](https://github.com/treilik/bubblelister)[![](media/icons/sugar-boxer.png)](media/icons/sugar-boxer.png)**[SugarBoxer](sugar-boxer/)**Box-drawing layout engine — H/V panel composition with weighted sizing, borders, and nested grids. Port of [bubbleboxer](https://github.com/treilik/bubbleboxer)[![](media/icons/sugar-veil.png)](media/icons/sugar-veil.png)**[SugarVeil](sugar-veil/)**Terminal overlay compositor — push/pop overlay views with z-ordering, positioning, and per-overlay teardown. Port of [bubbletea-overlay](https://github.com/rmhubbert/bubbletea-overlay)[![](media/icons/sugar-crumbs.png)](media/icons/sugar-crumbs.png)**[SugarCrumbs](sugar-crumbs/)**Navigation breadcrumbs — immutable NavStack with push/pop, shell-change detection, and type-ahead filter. Port of [bubbleo](https://github.com/KevM/bubbleo)[![](media/icons/sugar-dash.png)](media/icons/sugar-dash.png)**[SugarDash](sugar-dash/)**Dashboard TUI library — column grid layout, framed panels, status bar, tabs, and more. Port of [bubble-grid](https://github.com/charmbracelet/bubble-grid).[![](media/icons/candy-hermit.png)](media/icons/candy-hermit.png)**[CandyHermit](candy-hermit/)**Fuzzy finder overlay — type to filter a list, arrow keys to select, Enter to confirm. Bubbletea Model wrapper. Port of [theHermit](https://github.com/Genekkion/theHermit)[![](media/icons/sugar-stickers.png)](media/icons/sugar-stickers.png)**[SugarStickers](sugar-stickers/)**FlexBox layout engine + simple sort/filter table. Ratio-based sizing, gap, justify, align, per-column styling. Port of [stickers](https://github.com/76creates/stickers)[![](media/icons/sugar-toast.png)](media/icons/sugar-toast.png)**[SugarToast](sugar-toast/)**Floating notification overlays — Info / Success / Warning / Error types, configurable position and auto-dismiss. Port of [bubbleup](https://github.com/DaltonSW/bubbleup)[![](media/icons/sugar-calendar.png)](media/icons/sugar-calendar.png)**[SugarCalendar](sugar-calendar/)**Interactive month-grid date picker — keyboard navigation, min/max date constraints, locale day names, ANSI rendering. Port of [bubble-datepicker](https://github.com/EthanEFung/bubble-datepicker)[![](media/icons/sugar-readline.png)](media/icons/sugar-readline.png)**[SugarReadline](sugar-readline/)**Interactive prompts — Text, Confirm, Selection, MultiSelect, Textarea. State-machine model, no external readline dependency. Port of [promptkit](https://github.com/erikgeiser/promptkit)[![](media/icons/sugar-table.png)](media/icons/sugar-table.png)**[SugarTable](sugar-table/)**Full-featured interactive data table — column definitions, StyledCell ANSI formatting, pagination, frozen rows/cols. Port of [bubble-table](https://github.com/Evertras/bubble-table)Apps built on the stack
-----------------------

[](#apps-built-on-the-stack)

AppRole[![](media/icons/candy-mold.png)](media/icons/candy-mold.png)**[CandyMold](candy-mold/)**`composer create-project sugarcraft/candy-mold my-app` — bootstrap skeleton with a working counter Model. Port of [bubbletea-app-template](https://github.com/charmbracelet/bubbletea-app-template).[![](media/icons/candy-shell.png)](media/icons/candy-shell.png)**[CandyShell](candy-shell/)**Composer-installable CLI of all 13 subcommands (choose, confirm, file, filter, format, input, join, log, pager, spin, style, table, write). Port of [gum](https://github.com/charmbracelet/gum).[![](media/icons/candy-freeze.png)](media/icons/candy-freeze.png)**[CandyFreeze](candy-freeze/)**Code → SVG screenshot generator (no `ext-gd` required). Port of [freeze](https://github.com/charmbracelet/freeze).[![](media/icons/sugar-glow.png)](media/icons/sugar-glow.png)**[SugarGlow](sugar-glow/)**Markdown CLI viewer / pager. Port of [glow](https://github.com/charmbracelet/glow).[![](media/icons/sugar-spark.png)](media/icons/sugar-spark.png)**[SugarSpark](sugar-spark/)**ANSI escape-sequence inspector. Port of [sequin](https://github.com/charmbracelet/sequin).[![](media/icons/sugar-wishlist.png)](media/icons/sugar-wishlist.png)**[SugarWishlist](sugar-wishlist/)**TUI directory of SSH endpoints — YAML/JSON config + `pcntl_exec` into the chosen `ssh`. Port of [wishlist](https://github.com/charmbracelet/wishlist).[![](media/icons/sugar-skate.png)](media/icons/sugar-skate.png)**[SugarSkate](sugar-skate/)**In-memory key/value store with plugin backends — Memory, SQLite, Badger. Glob listing, TTL, batch operations. Port of [skate](https://github.com/charmbracelet/skate)[![](media/icons/sugar-post.png)](media/icons/sugar-post.png)**[SugarPost](sugar-post/)**Email sending library — SMTP + Resend API transports, attachments, HTML + plain-text multipart, fluent interface. Port of [skate](https://github.com/charmbracelet/skate)[![](media/icons/candy-serve.png)](media/icons/candy-serve.png)**[CandyServe](candy-serve/)**Self-hostable Git server over SSH (authorized keys), Git daemon, and HTTP. Users, repos, access control, optional LFS. Port of [soft-serve](https://github.com/charmbracelet/soft-serve)[![](media/icons/candy-tetris.png)](media/icons/candy-tetris.png)**[CandyTetris](candy-tetris/)**Tetris clone — SRS rules, 7-bag, ghost piece, NES scoring, level-driven gravity. Port of [tetrigo](https://github.com/Broderick-Westrope/tetrigo).[![](media/icons/candy-files.png)](media/icons/candy-files.png)**[CandyFiles](candy-files/)**Dual-pane file manager — Midnight Commander style, multi-select, sort, delete-with-confirm. Port of [superfile](https://github.com/yorukot/superfile).[![](media/icons/sugar-crush.png)](media/icons/sugar-crush.png)**[SugarCrush](sugar-crush/)**AI coding-assistant chat shell — pluggable backend (EchoBackend offline; CommandBackend for Anthropic / OpenAI / Ollama via a wrapper script). Port of [crush](https://github.com/charmbracelet/crush).[![](media/icons/sugar-stash.png)](media/icons/sugar-stash.png)**[SugarStash](sugar-stash/)**Three-pane git TUI — status / branches / log, single-key stage / unstage; shells out to `git` for every mutation. Port of [lazygit](https://github.com/jesseduffield/lazygit).[![](media/icons/candy-query.png)](media/icons/candy-query.png)**[CandyQuery](candy-query/)**Terminal SQLite browser — list tables, browse rows, run ad-hoc queries (PDO + `:memory:` test fixtures). Port of [lazysql](https://github.com/jorgerojas26/lazysql).[![](media/icons/sugar-tick.png)](media/icons/sugar-tick.png)**[SugarTick](sugar-tick/)**Privacy-first coding-time tracker — JSONL on disk, SugarCharts-driven dashboard, no cloud / no MongoDB. Port of [TakaTime](https://github.com/Rtarun3606k/TakaTime).[![](media/icons/candy-mines.png)](media/icons/candy-mines.png)**[CandyMines](candy-mines/)**Minesweeper — first-click safety, recursive flood-fill, flag toggle, win/lose detection, deterministic-RNG injectable. Port of [go-sweep](https://github.com/maxpaulus43/go-sweep).[![](media/icons/candy-flip.png)](media/icons/candy-flip.png)**[CandyFlip](candy-flip/)**ASCII GIF viewer — ext-gd decode, downsample to a cell grid, render as ANSI 24-bit blocks or a luminance-ramp. Port of [gifterm](https://github.com/namzug16/gifterm).[![](media/icons/sugar-reel.png)](media/icons/sugar-reel.png)**[SugarReel](sugar-reel/)**Terminal video player — decodes mp4 (and more) on the fly and renders to ASCII / ANSI / truecolor half-block / sixel / kitty. Prior art: [tplay](https://github.com/maxcurzi/tplay), [glyph](https://github.com/seatedro/glyph), [video-to-ascii](https://github.com/joelibaceta/video-to-ascii).[![](media/icons/honey-flap.png)](media/icons/honey-flap.png)**[HoneyFlap](honey-flap/)**Flappy-Bird-style game — bird motion is a HoneyBounce projectile, pipes scroll left at a fixed cell rate. Port of [flapioca](https://github.com/kbrgl/flapioca).Each library has its own `README.md` with usage examples and a deep dive into its public API.

Quickstart — a counter app
--------------------------

[](#quickstart--a-counter-app)

```
use SugarCraft\Core\{Cmd, KeyType, Model, Msg, Program};
use SugarCraft\Core\Msg\KeyMsg;

final class Counter implements Model
{
    public function __construct(public readonly int $n = 0) {}
    public function init(): ?\Closure { return null; }

    public function update(Msg $msg): array
    {
        if ($msg instanceof KeyMsg && $msg->type === KeyType::Char && $msg->rune === 'q') {
            return [$this, Cmd::quit()];
        }
        return [
            $msg instanceof KeyMsg && $msg->type === KeyType::Up
                ? new self($this->n + 1)
                : ($msg instanceof KeyMsg && $msg->type === KeyType::Down
                    ? new self($this->n - 1)
                    : $this),
            null,
        ];
    }

    public function view(): string { return "n = {$this->n}\n↑ ↓ to count, q to quit\n"; }
}

(new Program(new Counter()))->run();
```

Architecture
------------

[](#architecture)

- **PHP 8.1+** — fibers, readonly props, enums, `match`, intersection types.
- **Runtime**: ReactPHP event loop. Mirrors goroutine semantics for input, signals, render tick, command execution.
- **Style**: PSR-12 + readonly DTOs. Every `Style`, `Model`, etc. is immutable — `with*()` returns a new instance.
- **Testing**: PHPUnit 10. Snapshot ANSI tests for renderers; scripted-input event tests for the runtime.
- **Layout**: monorepo during the porting phase. Each library will split into its own repo at v1.0.

Status
------

[](#status)

Every library in the table above is **at v1**. The full surface of every Go counterpart that PHP can reasonably express (modulo the niche items called out in `CONVERSION.md` § Phase audit) has been ported. See [CONVERSION.md](./CONVERSION.md) for the full roadmap, per-library status, and the v2-parity sweep against Bubble Tea v2 / Lipgloss v2 / Bubbles v2.

Adding a new library or app
---------------------------

[](#adding-a-new-library-or-app)

The matchup of upstream → SugarCraft port is the source-of-truth in [MATCHUPS.md](./docs/MATCHUPS.md), and the contributor / agent playbook in [AGENTS.md](./AGENTS.md) walks through the full integration: naming conventions, package skeleton, tests, examples, VHS demos, website tiles, and the central docs to update. AI assistants should read AGENTS.md first.

Running the test suites
-----------------------

[](#running-the-test-suites)

The umbrella package is a metapackage; each library has its own `composer.json` + `vendor/`. To test everything:

```
for d in candy-core candy-ansi candy-buffer candy-layout candy-async candy-testing candy-mouse candy-input candy-fuzzy candy-sprinkles honey-bounce candy-zone candy-forms \
         sugar-bits sugar-charts sugar-dash sugar-prompt candy-shell candy-shine candy-kit \
         candy-freeze sugar-glow sugar-spark \
         candy-wish sugar-wishlist candy-metrics \
         candy-mold candy-tetris candy-files sugar-crush \
         sugar-stash candy-query sugar-tick candy-mines candy-flip honey-flap; do
     (cd "$d" && composer install --quiet && vendor/bin/phpunit) || exit 1
done
```

Code style is enforced via `php-cs-fixer` (root `.php-cs-fixer.dist.php`). Run from the repo root:

```
PHP_CS_FIXER_IGNORE_ENV=1 php-cs-fixer fix --diff --allow-risky=yes
```

Contributing
------------

[](#contributing)

See [CONTRIBUTING.md](./CONTRIBUTING.md). Bugs, feature requests, and ports of additional Charmbracelet (or compatible) libraries welcome. For security issues, see [SECURITY.md](./SECURITY.md).

License
-------

[](#license)

[MIT](./LICENSE).

---

 [![SugarCraft](media/profile.png)](https://sugarcraft.github.io/)
 *made with sugar · sweet to build · fun to use*

###  Health Score

26

—

LowBetter than 41% of packages

Maintenance62

Regular maintenance activity

Popularity4

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity27

Early-stage or recently created project

 Bus Factor1

Top contributor holds 99.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/b1036e0717211b8030b83cbe729e8ba6ba442fdbd5285fb97a39d7dcfe339342?d=identicon)[detain](/maintainers/detain)

---

Top Contributors

[![detain](https://avatars.githubusercontent.com/u/1364504?v=4)](https://github.com/detain "detain (3797 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (3 commits)")[![claude](https://avatars.githubusercontent.com/u/81847?v=4)](https://github.com/claude "claude (1 commits)")[![mend-bolt-for-github[bot]](https://avatars.githubusercontent.com/in/16809?v=4)](https://github.com/mend-bolt-for-github[bot] "mend-bolt-for-github[bot] (1 commits)")

---

Tags

ansibubble-teacharm-libscharmbraceletcomposerelm-architectureflexokigumgum-portlipgloss-portmonorepophpphp-libraryreactphpsoft-servesugarcraftterminal-uituitui-framework

### Embed Badge

![Health badge](/badges/sugarcraft-sugarcraft/health.svg)

```
[![Health](https://phpackages.com/badges/sugarcraft-sugarcraft/health.svg)](https://phpackages.com/packages/sugarcraft-sugarcraft)
```

###  Alternatives

[afosto/yaac

Yet Another ACME client: a decoupled LetsEncrypt client

242514.1k1](/packages/afosto-yaac)[albertofem/rsync-lib

A simple PHP rsync wrapper library

89417.7k7](/packages/albertofem-rsync-lib)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
