PHPackages                             qroques/resilient-data - 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. qroques/resilient-data

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

qroques/resilient-data
======================

A package to make data resilient

v0.8.0(1y ago)013[4 PRs](https://github.com/qroques/resilientData/pulls)MITPHPPHP &gt;=8.3

Since Jun 15Pushed 1y ago1 watchersCompare

[ Source](https://github.com/qroques/resilientData)[ Packagist](https://packagist.org/packages/qroques/resilient-data)[ RSS](/packages/qroques-resilient-data/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (4)Versions (14)Used By (0)

Resilient Data
==============

[](#resilient-data)

Warning

This project is a work in progress. The code is not yet fully functional.

Overview
--------

[](#overview)

Resilient Data is a library that provides classes to work with data in a resilient way. Tipically, a data is splitted into multiple parts, and each part can be stored in different locations. This library provides classes to work with this kind of data and recover the inital data even if some parts are missing.

Example
-------

[](#example)

You have 4 associates, and you want to split a secret into 4 parts, so that each associate has one part. You want the secret to be recoverable if at least 3 associates are present. This means that if you lose one associate, you can still recover the secret. To do so, this library will split the secret into multiple parts (chunks) and distribute them to the associates. To ensure redundancy, each chunk will be duplicated and distributed to two associates.

ChunkAssociate 1Associate 2Associate 3Associate 4AXXBXXCXXDXXEXXFXXUsage
-----

[](#usage)

### Installation

[](#installation)

#### Composer

[](#composer)

```
composer require qroques/resilient-data
```

Note

This library requires PHP 8.3 or later but does not require any other dependency.

### Splitting data

[](#splitting-data)

```
$resilientData = new Qroques\ResilientData\ResilientData(file_get_contents(__DIR__.'/data/lorem.txt'));
// We want to split the data into 5 parts, and we want to be able to recover the data even with 2 parts missing
$splittingConfiguration = new Qroques\ResilientData\SplittingConfiguration(5, 2);
$splitter = new Qroques\ResilientData\Splitter();

$fragments = $splitter->split($resilientData, $splittingConfiguration);
```

Warning

Chunk of data are not encrypted. This mean that parts of the data can still be readable from the fragments.

### Recovering data

[](#recovering-data)

```
$assembler = new Qroques\ResilientData\Assembler();
$resilientData = $splitter->assemble($fragments);
```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance35

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 80% 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.

###  Release Activity

Cadence

Every ~2 days

Total

8

Last Release

680d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/62beb4f96e73b863ac890fa2ce58213ec8d1e6cf83a98ce904847731e07b0600?d=identicon)[qroques](/maintainers/qroques)

---

Top Contributors

[![qroques](https://avatars.githubusercontent.com/u/22145593?v=4)](https://github.com/qroques "qroques (12 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (3 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/qroques-resilient-data/health.svg)

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

###  Alternatives

[woocommerce/wc-smooth-generator

A smooth product, order, customer, and coupon generator for WooCommerce.

37418.8k](/packages/woocommerce-wc-smooth-generator)

PHPackages © 2026

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