
# storh

storh — це автономне файлове сховище PHP, побудоване на файлах: документи JSONC, сегментований журнал лише для додавання та черга лише для додавання. Воно зберігає записи з ідентифікаторами UUIDv7, підтримує потокове читання та запити курсором або за часовим діапазоном і використовує атомарні операції файлової системи замість сервера бази даних.

Викликаючий код передає каталог. storh не визначає шляхи програми автоматично, не читає глобальні константи й не потребує адаптера фреймворку.

## Рушії

- `DocStore` зберігає кожен запис в окремому файлі JSONC зі шляхами, розподіленими за кінцевими символами UUID.
  Найкраще підходить для точкового читання за ідентифікатором і запитів за індексованими полями.
- `SegmentedLog` додає записи до файлів сегментів у вигляді рядків JSON, захищених префіксами довжини в байтах і контрольної суми. Найкраще підходить для потоків з інтенсивним додаванням і читанням курсором або за часовим діапазоном.
- `Queue` додає довговічні події завдань і зберігає стан черги в пам’яті. Найкраще підходить для довговічної передачі завдань між процесами.

Не впевнені, який рушій підійде для вашого робочого навантаження? Дивіться
[Вибір рушія](https://storh.inline0.dev/uk/docs/engines#choosing-an-engine), щоб порівняти їх поруч.

`DocStore`, `SegmentedLog` і `Queue` — це псевдоніми класів реалізацій `DocPerFileStore`, `SegmentedLogStore` і `LogQueue`,
тому обидві назви посилаються на той самий клас.

## Вимоги

- PHP 8.2 або новіша
- `ext-json`
- локальна або змонтована файлова система з підтримкою атомарного перейменування в межах каталогу

## Що далі

- [Встановлення](https://storh.inline0.dev/uk/docs/install)
- [Швидкий старт](https://storh.inline0.dev/uk/docs/quick-start)
- [Рушії](https://storh.inline0.dev/uk/docs/engines)
- [Масштабування та обмеження](https://storh.inline0.dev/uk/docs/scaling-limits)
