
# storh

storh is een zelfstandige bestandsdatastore PHP, opgebouwd uit bestanden: JSONC-documenten, een append-only gesegmenteerd log en een append-only wachtrij. De datastore bewaart records met UUIDv7-ID's, ondersteunt streamingreads en cursor- of tijdsbereikqueries, en gebruikt atomaire bestandssysteembewerkingen in plaats van een databaseserver.

Aanroepers geven een map op. storh zoekt geen applicatiepaden, leest geen globale constanten en vereist geen frameworkadapter.

## Engines

- `DocStore` bewaart één JSONC-bestand per record met paden die zijn geshard op de laatste UUID tekens. Geschikt voor puntgewijze reads op ID en queries op geïndexeerde velden.
- `SegmentedLog` voegt records toe aan segmentbestanden als JSON-regels met een prefix voor byte-lengte en checksum. Geschikt voor streams waaraan veel wordt toegevoegd en die met cursors of binnen tijdsbereiken worden gelezen.
- `Queue` voegt duurzame taakevenementen toe en houdt de wachtrijstatus in het geheugen bij. Geschikt voor duurzame taakverdeling tussen processen.

Weet u niet zeker welke bij uw workload past? Bekijk [Een engine kiezen](https://storh.inline0.dev/nl/docs/engines#choosing-an-engine) voor een vergelijking naast elkaar.

`DocStore`, `SegmentedLog` en `Queue` zijn klassealiassen van de implementatieklassen `DocPerFileStore`, `SegmentedLogStore` en `LogQueue`, dus beide namen verwijzen naar dezelfde klasse.

## Vereisten

- PHP 8.2 of hoger
- `ext-json`
- een lokaal of gekoppeld bestandssysteem met semantiek voor atomaire hernoemingen binnen een map

## Waarnaartoe

- [Installeren](https://storh.inline0.dev/nl/docs/install)
- [Snel aan de slag](https://storh.inline0.dev/nl/docs/quick-start)
- [Engines](https://storh.inline0.dev/nl/docs/engines)
- [Schalen en limieten](https://storh.inline0.dev/nl/docs/scaling-limits)
