PHPackages                             devdch/fsrs - 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. devdch/fsrs

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

devdch/fsrs
===========

Free Spaced Repetition Scheduler (FSRS) algorithm implementation in PHP.

2283PHP

Since Jan 13Pushed 1y ago1 watchersCompare

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

READMEChangelogDependenciesVersions (1)Used By (0)

PHP-FSRS
========

[](#php-fsrs)

Free Spaced Repetition Scheduler (FSRS) algorithm implementation in PHP

More info about FSRS here:

Example:

```
use Fsrs\Config\Config;
use Fsrs\DTO\Card;
use Fsrs\Enum\RatingEnum;
use Fsrs\Enum\StateEnum;
use Fsrs\Scheduler;

// All params are optional (default config will be used).
$scheduler = new Scheduler(config: new Config(
    weights: [
        0.40255,
        1.18385,
        3.173,
        15.69105,
        7.1949,
        0.5345,
        1.4604,
        0.0046,
        1.54575,
        0.1192,
        1.01925,
        1.9395,
        0.11,
        0.29605,
        2.2698,
        0.2315,
        2.9898,
        0.51655,
        0.6621,
    ],
    desiredRetention: 0.9,
    learningSteps: [60, 600,],
    relearningSteps: [600,],
    maximumInterval: 36500,
    enableFuzzing: true,
));

$card = new Card();

$card = $scheduler->reviewCard(
    card: $card,
    rating: RatingEnum::Good,
    reviewDatetime: new DateTimeImmutable('now', Config::getTimezone())
)->card;
```

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance32

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity16

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/c6f975e3df1dabb84aa6677aba64d89b1b03bacc37ac3ea4ecc59a7ce629198e?d=identicon)[devdch](/maintainers/devdch)

---

Top Contributors

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

### Embed Badge

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

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

###  Alternatives

[roots/bedrock-autoloader

An autoloader that enables standard plugins to be required just like must-use plugins

405.6M51](/packages/roots-bedrock-autoloader)

PHPackages © 2026

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