
# storh

storh je samostatné úložiště PHP založené na souborech: dokumenty JSONC, segmentovaný log pouze s přidáváním na konec a fronta se stejným principem. Ukládá záznamy s UUIDv7 ID, podporuje streamované čtení a dotazy pomocí kurzoru nebo časového rozsahu a místo databázového serveru využívá atomické operace souborového systému.

Volající zadávají adresář. storh sám nevyhledává cesty aplikace, nečte globální konstanty a nevyžaduje adaptér frameworku.

## Enginy

- `DocStore` ukládá pro každý záznam jeden soubor JSONC do cesty rozdělené podle posledních UUID znaků. Nejlépe se hodí pro jednotlivá čtení podle ID a dotazy na pole s indexem.
- `SegmentedLog` přidává záznamy do souborů segmentů jako řádky JSON chráněné prefixem s délkou v bajtech a kontrolním součtem. Nejlépe se hodí pro proudy s častým přidáváním a čtením pomocí kurzoru či časového rozsahu.
- `Queue` přidává trvalé události úloh a uchovává stav fronty v paměti. Nejlépe se hodí pro trvalé předávání práce mezi procesy.

Nejste si jistí, který engine vyhovuje vaší zátěži? Podívejte se na [Výběr enginu](https://storh.inline0.dev/cs/docs/engines#choosing-an-engine), kde najdete přímé srovnání.

`DocStore`, `SegmentedLog` a `Queue` jsou aliasy tříd implementací `DocPerFileStore`, `SegmentedLogStore` a `LogQueue`, takže obě označení odkazují na stejnou třídu.

## Požadavky

- PHP 8.2 nebo novější
- `ext-json`
- místní nebo připojený souborový systém s podporou atomického přejmenování v rámci adresáře

## Kam dál

- [Instalace](https://storh.inline0.dev/cs/docs/install)
- [Rychlý start](https://storh.inline0.dev/cs/docs/quick-start)
- [Enginy](https://storh.inline0.dev/cs/docs/engines)
- [Škálování a limity](https://storh.inline0.dev/cs/docs/scaling-limits)
