
# storh

storh er et selvstændigt PHP-datalager bygget op omkring filer: JSONC-dokumenter, en segmenteret log med tilføjelser og en kø med tilføjelser. Det gemmer poster med UUIDv7-id'er, understøtter streaminglæsninger og markør- eller tidsområdeforespørgsler og bruger atomiske filsystemhandlinger i stedet for en databaseserver.

Kaldere angiver en mappe. storh finder ikke selv applikationsstier, læser ikke globale konstanter og kræver ikke en frameworkadapter.

## Motorer

- `DocStore` gemmer én JSONC-fil pr. post med stier opdelt efter de sidste UUID tegn. Bedst til punktlæsninger efter id og indekserede feltforespørgsler.
- `SegmentedLog` føjer poster til segmentfiler som JSON-linjer med præfikser for byte-længde og kontrolsum. Bedst til streams med mange tilføjelser og markør- eller tidsområdelæsninger.
- `Queue` føjer varige jobhændelser til og holder køtilstanden i hukommelsen. Bedst til varig arbejdsfordeling mellem processer.

Er du i tvivl om, hvilken der passer til din arbejdsbelastning? Se [Valg af motor](https://storh.inline0.dev/da/docs/engines#choosing-an-engine) for en sammenligning side om side.

`DocStore`, `SegmentedLog` og `Queue` er klassealiaser for implementeringsklasserne `DocPerFileStore`, `SegmentedLogStore` og `LogQueue`, så begge navne henviser til den samme klasse.

## Krav

- PHP 8.2 eller nyere
- `ext-json`
- et lokalt eller monteret filsystem med semantik for atomisk omdøbning i en mappe

## Hvad nu?

- [Installation](https://storh.inline0.dev/da/docs/install)
- [Kom godt i gang](https://storh.inline0.dev/da/docs/quick-start)
- [Motorer](https://storh.inline0.dev/da/docs/engines)
- [Skalering og begrænsninger](https://storh.inline0.dev/da/docs/scaling-limits)
