# obj-core
> The storage engine internals behind `obj`.
[](https://crates.io/crates/obj-core)
Part of [`obj`](https://github.com/uname-n/obj) — the embedded document
database. `obj-core` is the engine: pager, write-ahead log, B-tree,
codec, catalog, crypto, and integrity checks.
> **Internal crate — not for direct use.** `obj-core` is an UNSTABLE
> implementation detail with **no SemVer guarantee**; its API may change
> in any release. Depend on [`obj-db`](https://crates.io/crates/obj-db),
> the stable public crate, instead. This crate is published only so the
> public crates can resolve it.
---
## What's inside
| `pager` | Fixed-size page cache over the file; optional LZ4 / ChaCha20-Poly1305.|
| `wal` | Write-ahead log: frames, commit records, checkpoint folding. |
| `btree` | Byte-aware B+tree for primary and secondary keys. |
| `codec` | Positional, schema-driven postcard encode / decode. |
| `catalog` | Collection + index registry and the on-disk root map. |
| `index` | Secondary index maintenance (standard, unique, multi-value, composite).|
| `txn` | Reader-snapshot / writer-lock transaction state. |
| `crypto` | At-rest page encryption primitives. |
| `integrity` | The bidirectional consistency check behind `obj check`. |
The on-disk format these modules implement is specified in
[`docs/format.md`](https://github.com/uname-n/obj/blob/master/docs/format.md)
and frozen at `format_major = 1`.
---
## License
Dual-licensed under [MIT](https://github.com/uname-n/obj/blob/master/LICENSE-MIT)
or [Apache 2.0](https://github.com/uname-n/obj/blob/master/LICENSE-APACHE),
at your option.