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

[ivanovsaleksejs/num-to-text

Converts numbers or prices to text representation in various languages. For example, 437605 becomes "four hundred thirty seven thousand six hundred five". Price class for displaying prices with currencies is also available.

2015.9k](/packages/ivanovsaleksejs-num-to-text)[vildanbina/composer-upgrader

Effortlessly upgrade all Composer dependencies to their latest versions with a single command.

364.7k1](/packages/vildanbina-composer-upgrader)

PHPackages © 2026

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