# aphroditeβπβCore Engine
> **CCR compression proxy + cdylib - classify, compress, store, preview.**
> **Sub-ms, 28 content types, 12,800Γ max ratio.**
The core compression engine. Produces both the `aphrodite` binary (HTTP proxy on
`:9797`/`:9798`) and `libaphrodite.dylib` (loaded by the Hermes plugin via C ABI).
[crates.io](https://crates.io/crates/aphrodite) Β·
[docs](../../docs/README.md)
---
## Install
```bash
# From source (monorepo)
cargo build --release -p aphrodite
# From crates.io
cargo install aphrodite
```
---
## What it does
```
βΌ
Agent (15 tok preview, not 500 tok raw)
```
Four pipeline stages, all under 1ms:
1. **Classify** - 28-type regex classifier (`diff`, `build_output`, `code_rust`, β¦)
2. **Template** - TOML-driven preview templates per content type
3. **Store** - blake3 hash β SQLite or in-memory β CCR marker
4. **Preview** - Structured `[type:metadata]` the LLM reads instantly
---
## Architecture
```
src/
βββ lib.rs β 22 C ABI exports for dylib loading
βββ proxy.rs β HTTP proxy (:9797 cache, :9798 token)
βββ hooks.rs β transform_tool_result, terminal, pre/post LLM
βββ session.rs β Turn lifecycle, conversation index, catalog
βββ state.rs β AphroditeState, inline store, LRU, markers
βββ marker.rs β CCR marker formatting + parsing (<<<CCR:β¦>>>)
βββ catalog.rs β Full/compact/TOC catalog display
βββ resolve.rs β Recursive CCR expansion (3 levels deep)
βββ stage2.rs β Semantic reduction for JSON, build, diff, code
βββ struct_extract.rs β Code structure maps (Rust, Python, Go, JS/TS)
βββ config.rs β CLI args + TOML multi-config
βββ config_loader.rs β TOML + env var loading
βββ prefetch.rs β Background file read + compress threads
βββ preview.rs β detect_type, build_preview (shared across proxy + dylib)
βββ main.rs β Binary entry point
βββ retrieve.rs β POST /retrieve β hash β content, zstd decode, filter, paginate
```
## C ABI (22 functions)
The 22 `#[no_mangle] extern "C"` exports in `lib.rs` serve both the
`aphrodite-hermes` bridge crate (which re-exports a higher-level ABI β see
`crates/aphrodite-hermes/README.md`) and the Python plugin's ctypes bindings.
---
## Dependencies
- `headroom-core` - Content transforms + classifier + SQLite backend (vendored fork at `vendor/headroom/`)
- `axum` / `tokio` / `tower-http` - HTTP proxy (optional, gated behind `proxy` feature)
- `serde` / `serde_json` - Serialization
- `blake3` - Content-addressed hashing
---
## See Also
- [Installing Aphrodite](../../docs/install/README.md) - which artifact you
need, per-platform install guides, troubleshooting
- [aphrodite.toml Configuration](../../docs/config/aphrodite-toml.md) - full
TOML schema this crate's `config.rs` deserializes
- [Hermes Integration](../../docs/hermes-integration.md) - how this binary's
sibling dylib crate (`aphrodite-hermes`) plugs into Hermes Agent
## License
CC0-1.0 - public domain.