PHPackages                             pouya1364/probabilistic-laravel - 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. pouya1364/probabilistic-laravel

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

pouya1364/probabilistic-laravel
===============================

Laravel package integration for probabilistic-php — Bloom Filter, Counting Bloom Filter, Cuckoo Filter, Count-Min Sketch, and HyperLogLog via the service container and a Facade.

v0.1.0(1mo ago)00MITPHP ^8.2

Since Jun 21Compare

[ Source](https://github.com/pouya1364/probabilistic-laravel)[ Packagist](https://packagist.org/packages/pouya1364/probabilistic-laravel)[ RSS](/packages/pouya1364-probabilistic-laravel/feed)WikiDiscussions Synced 2w ago

READMEChangelog (1)Dependencies (4)Versions (2)Used By (0)

probabilistic-laravel
=====================

[](#probabilistic-laravel)

Laravel integration for [`pouya1364/probabilistic-php`](https://packagist.org/packages/pouya1364/probabilistic-php). Define named, pre-configured probabilistic data structures once in config, then resolve them anywhere in your app — the same pattern Laravel uses for cache stores, queue connections, and database connections.

Supported structures: Bloom Filter, Counting Bloom Filter, Cuckoo Filter, Count-Min Sketch, and HyperLogLog. See the [core library](https://packagist.org/packages/pouya1364/probabilistic-php) for the algorithm documentation.

Requirements
------------

[](#requirements)

- PHP 8.2+
- Laravel 10, 11, 12, or 13

Installation
------------

[](#installation)

```
composer require pouya1364/probabilistic-laravel
```

The service provider and the `Probabilistic` facade are registered automatically via package auto-discovery — no manual registration needed.

Publish the config file:

```
php artisan vendor:publish --tag=probabilistic-config
```

This creates `config/probabilistic.php`.

Configuration
-------------

[](#configuration)

Each structure type holds any number of independently named instances, so a single app can size several filters differently for different purposes. Keys are written in `snake_case`.

```
// config/probabilistic.php

return [
    'bloom_filters' => [
        'emails_seen' => ['expected_items' => 100000, 'false_positive_rate' => 0.01],
    ],
    'counting_bloom_filters' => [
        'active_sessions' => ['expected_items' => 50000, 'false_positive_rate' => 0.01],
    ],
    'cuckoo_filters' => [
        'rate_limited_ips' => ['expected_items' => 100000],
    ],
    'count_min_sketches' => [
        'page_view_counts' => ['width' => 2000, 'depth' => 5],
    ],
    'hyperloglogs' => [
        'unique_visitors' => ['precision' => 14],
    ],
];
```

GroupParameters`bloom_filters``expected_items` (int), `false_positive_rate` (float)`counting_bloom_filters``expected_items` (int), `false_positive_rate` (float)`cuckoo_filters``expected_items` (int)`count_min_sketches``width` (int), `depth` (int)`hyperloglogs``precision` (int, default 14)Each instance is built once, on first access, and reused for the lifetime of the request.

Usage
-----

[](#usage)

### Facade

[](#facade)

```
use ProbabilisticLaravel\Facades\Probabilistic;

$emails = Probabilistic::bloomFilter('emails_seen');
$emails->add('jane@example.com');

if ($emails->mightContain('jane@example.com')) {
    // probably seen before
}

Probabilistic::hyperLogLog('unique_visitors')->add($visitorId);
$estimate = Probabilistic::hyperLogLog('unique_visitors')->estimate();
```

Available accessors (each takes an optional instance name, defaulting to `'default'`):

```
Probabilistic::bloomFilter('emails_seen');
Probabilistic::countingBloomFilter('active_sessions');
Probabilistic::cuckooFilter('rate_limited_ips');
Probabilistic::countMinSketch('page_view_counts');
Probabilistic::hyperLogLog('unique_visitors');
```

The facade exposes a `@method static` docblock for each accessor, so IDEs autocomplete the methods and their return types.

### Without the facade

[](#without-the-facade)

If you prefer not to use facades, resolve the manager from the container or inject it directly — both return the same singleton instance:

```
// Container
$manager = app('probabilistic');
$filter = $manager->bloomFilter('emails_seen');
```

```
use ProbabilisticLaravel\ProbabilisticManager;

final class SignupController
{
    public function __construct(private readonly ProbabilisticManager $probabilistic) {}

    public function store(): void
    {
        $this->probabilistic->bloomFilter('emails_seen')->add(/* ... */);
    }
}
```

Listing configured instances
----------------------------

[](#listing-configured-instances)

```
php artisan probabilistic:list
```

Prints a table of every configured instance and its parameters, grouped by structure type. Empty groups are omitted.

Related packages
----------------

[](#related-packages)

- [probabilistic-php](https://github.com/pouya1364/probabilistic-php) — the core, framework-agnostic library with the algorithm documentation.
- [probabilistic-bundle](https://github.com/pouya1364/probabilistic-bundle) — the equivalent integration for Symfony.

Testing
-------

[](#testing)

```
composer test
```

License
-------

[](#license)

MIT

###  Health Score

34

—

LowBetter than 74% of packages

Maintenance90

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

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

Unknown

Total

1

Last Release

46d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/38941304?v=4)[Pouya Amani](/maintainers/pouya1364)[@pouya1364](https://github.com/pouya1364)

---

Tags

laravelBloom Filterprobabilistic-data-structures

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/pouya1364-probabilistic-laravel/health.svg)

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

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3355.4M352](/packages/psalm-plugin-laravel)[renatomarinho/laravel-page-speed

Laravel Page Speed

2.5k1.7M11](/packages/renatomarinho-laravel-page-speed)[emargareten/inertia-modal

Inertia Modal is a Laravel package that lets you implement backend-driven modal dialogs for Inertia apps.

90157.6k](/packages/emargareten-inertia-modal)[forjedio/inertia-table

Backend-driven dynamic tables for Laravel + Inertia.js

272.0k](/packages/forjedio-inertia-table)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

119.8k](/packages/tomshaw-electricgrid)[grafite/forms

A remarkably magical form package for Laravel.

377.1k2](/packages/grafite-forms)

PHPackages © 2026

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