obj-core 1.1.2

Storage engine internals for the obj embedded document database (pager, WAL, B-tree, codec, catalog).
Documentation
# obj-core

> The storage engine internals behind `obj`.

[![crates.io](https://img.shields.io/crates/v/obj-core.svg)](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

| Module      | Responsibility                                                        |
|-------------|-----------------------------------------------------------------------|
| `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.