scarab-protocol 0.3.3

IPC protocol definitions and shared-memory layout for the Scarab terminal emulator
Documentation
# scarab-protocol

IPC protocol definitions and shared-memory layout for the
[Scarab](https://github.com/raibid-labs/scarab) terminal emulator.

> **Status: pre-1.0.** Wire format and shared-memory layout may change
> between 0.x minor versions.

## What this crate provides

- `#[repr(C)]` shared-memory structs (`SharedState`, ring buffer, grid cells).
- `DaemonMessage` / `ClientMessage` enums for the Unix-domain-socket control
  channel between the daemon and the Bevy client.
- Wire types reused by `scarab-plugin-api` (e.g. `ModalItem`, `OverlayStyle`,
  `NavFocusableAction`).

## Constraints

- Layout is `#[repr(C)]` and must remain `no_std` compatible so the
  shared-memory mapping has stable, predictable layout across builds.
- Uses `bytemuck::{Pod, Zeroable}` for safe zero-copy transmutation.

## Features

| Feature | Default | Description |
| --- | --- | --- |
| `bevy` | off | Derives `bevy_ecs::Resource`/`Event` on selected types. |

## License

Dual-licensed under either:

- Apache License, Version 2.0 ([LICENSE-APACHE]../../LICENSE-APACHE)
- MIT License ([LICENSE-MIT]../../LICENSE-MIT)

at your option.