
# storh

storh adalah penyimpanan data mandiri PHP berbasis file: dokumen JSONC, log tersegmentasi append-only, dan antrean append-only. Penyimpanan ini menyimpan catatan dengan ID UUIDv7, mendukung pembacaan streaming serta kueri cursor atau rentang waktu, dan menggunakan operasi sistem file atomik alih-alih server database.

Pemanggil menyediakan direktori. storh tidak menemukan jalur aplikasi, membaca konstanta global, atau memerlukan adapter framework.

## Mesin

- `DocStore` menyimpan satu file JSONC per catatan dengan jalur yang di-shard berdasarkan dua karakter awal dari grup terakhir UUID. Paling cocok untuk pembacaan langsung berdasarkan ID dan kueri kolom berindeks.
- `SegmentedLog` menambahkan catatan ke file segmen sebagai baris JSON yang dilengkapi prefiks panjang byte dan checksum. Paling cocok untuk stream yang sering ditambahkan dengan pembacaan cursor dan rentang waktu.
- `Queue` menambahkan peristiwa pekerjaan persisten dan menyimpan status antrean di memori. Paling cocok untuk distribusi pekerjaan persisten antarproses.

Belum yakin mana yang sesuai dengan beban kerja Anda? Lihat [Memilih mesin](https://storh.inline0.dev/id/docs/engines#choosing-an-engine) untuk perbandingan berdampingan.

`DocStore`, `SegmentedLog`, dan `Queue` adalah alias kelas untuk kelas implementasi `DocPerFileStore`, `SegmentedLogStore`, dan `LogQueue`, sehingga kedua nama merujuk ke kelas yang sama.

## Persyaratan

- PHP 8.2 atau lebih baru
- `ext-json`
- sistem file lokal atau terpasang dengan semantik penggantian nama atomik di dalam direktori

## Langkah selanjutnya

- [Instal](https://storh.inline0.dev/id/docs/install)
- [Mulai Cepat](https://storh.inline0.dev/id/docs/quick-start)
- [Mesin](https://storh.inline0.dev/id/docs/engines)
- [Penskalaan & Batasan](https://storh.inline0.dev/id/docs/scaling-limits)
