PHPackages                             welsh-tidy-mouse/binary-providers - 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. welsh-tidy-mouse/binary-providers

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

welsh-tidy-mouse/binary-providers
=================================

Binary providers

03PHPCI passing

Since Jun 6Pushed 11mo agoCompare

[ Source](https://github.com/welsh-tidy-mouse/binary-providers)[ Packagist](https://packagist.org/packages/welsh-tidy-mouse/binary-providers)[ RSS](/packages/welsh-tidy-mouse-binary-providers/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Binary Fetcher
==============

[](#binary-fetcher)

[![Binaries Tests](https://github.com/welsh-tidy-mouse/binary-providers/actions/workflows/binary-tests.yml/badge.svg)](https://github.com/welsh-tidy-mouse/binary-providers/actions/workflows/binary-tests.yml)[![PHP Tests](https://github.com/welsh-tidy-mouse/binary-providers/actions/workflows/php-tests.yml/badge.svg)](https://github.com/welsh-tidy-mouse/binary-providers/actions/workflows/php-tests.yml)[![Binary Fetcher license](https://camo.githubusercontent.com/0656506feae9bd60466c0eeceeaf7be1fe8e14098c2fd7f1ad2529fb5f94a7fd/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f77656c73682d746964792d6d6f7573652f62696e6172792d70726f7669646572733f7075626c6963)](https://github.com/welsh-tidy-mouse/binary-providers/blob/master/LICENSE)

This repository provides a set of binary providers for use with the [Binary Fetcher](https://github.com/welsh-tidy-mouse/binary-fetcher) library.

Each binary provider defines how to locate and download a specific binary from GitHub releases, tailored to the current platform (OS + architecture). These providers are used by Binary Fetcher to automate the installation of CLI tools across environments.

📦 What Is This For?
-------------------

[](#-what-is-this-for)

The [`binary-fetcher`](https://github.com/welsh-tidy-mouse/binary-fetcher) project is a PHP-based tool to download platform-specific binaries with zero configuration. It can be used both:

- **Via CLI** (`bin/binary-fetcher download`)
- **Via PHP** (`BinaryFetcher::download()`)

This repository (`binary-providers`) contains the list of supported binaries through reusable PHP provider classes.

🧩 Available Binary Providers
----------------------------

[](#-available-binary-providers)

Provider ClassBinarySource URLNotes`\WelshTidyMouse\BinaryProvider\BunJsBinaryProvider``bun`[oven-sh/bun](https://github.com/oven-sh/bun/releases)JavaScript runtime (Node.js alternative)`\WelshTidyMouse\BinaryProvider\TailwindCssBinaryProvider``tailwindcss`[tailwindlabs/tailwindcss](https://github.com/tailwindlabs/tailwindcss/releases)CSS utility framework CLI`\WelshTidyMouse\BinaryProvider\SassBinaryProvider``dart-sass`[sass/dart-sass](https://github.com/sass/dart-sass/releases)Sass compiler (standalone executable)🔧 Install
---------

[](#-install)

```
composer require welsh-tidy-mouse/binary-fetcher
```

🚀 How to Use These Providers
----------------------------

[](#-how-to-use-these-providers)

Using [Binary Fetcher](https://github.com/welsh-tidy-mouse/binary-fetcher), you can download any of these binaries based on your current OS and architecture.

### From CLI

[](#from-cli)

```
bin/binary-fetcher download "\WelshTidyMouse\BinaryProvider\BunJsBinaryProvider"
```

### From PHP

[](#from-php)

```
use WelshTidyMouse\BinaryFetcher\BinaryFetcher;
use WelshTidyMouse\BinaryProvider\BunJsBinaryProvider;

$binaryPath = (new BinaryFetcher())->download(BunJsBinaryProvider::class);
```

The binary will be downloaded to a writable location and its path will be returned.

🛠️ Development &amp; Contributions
----------------------------------

[](#️-development--contributions)

You can add your own binary provider class implementing the interface:

```
namespace WelshTidyMouse\BinaryFetcher\Contract;

use WelshTidyMouse\BinaryFetcher\Exception\BinaryProviderException;
use WelshTidyMouse\BinaryFetcher\Type\OsType;
use WelshTidyMouse\BinaryFetcher\Type\SystemArchType;

interface BinaryProviderInterface
{
    public function __construct();
    public function getName(): string;
    public function getDownloadableAssetUrl(string $version, OsType $os, SystemArchType $arch): ?string;
    public function getBinaryFilenameFromDownloadedAsset(string $assetFileName, string $downloadDirPath): string;
}
```

Pull requests for additional binary providers are welcome!

🧪 Quality
---------

[](#-quality)

- `composer lint` to run PHPStan
- `composer cs` to fix files with Code Sniffer
- `composer md`to run PHPMD
- `composer check` for all commands above

---

🐁 Part of Welsh Tidy Mouse
--------------------------

[](#-part-of-welsh-tidy-mouse)

This package is part of the **Welsh Tidy Mouse** ecosystem. Read more on the main repository: [binary-fetcher](https://github.com/welsh-tidy-mouse/binary-fetcher)

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance38

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity14

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% 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/3505f6ef263882c7be77a72e76e675c69c9af9184bcd6469a87786a0c75e87a8?d=identicon)[lanfisis](/maintainers/lanfisis)

---

Top Contributors

[![lanfisis](https://avatars.githubusercontent.com/u/872996?v=4)](https://github.com/lanfisis "lanfisis (1 commits)")

### Embed Badge

![Health badge](/badges/welsh-tidy-mouse-binary-providers/health.svg)

```
[![Health](https://phpackages.com/badges/welsh-tidy-mouse-binary-providers/health.svg)](https://phpackages.com/packages/welsh-tidy-mouse-binary-providers)
```

###  Alternatives

[astrotomic/laravel-webmentions

215.7k](/packages/astrotomic-laravel-webmentions)

PHPackages © 2026

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