alpine-protocol-sdk 0.2.4

High-level SDK on top of the ALPINE protocol layer.
Documentation
# ALPINE C++ SDK

lThe C++ SDK (`alpine::sdk`) is a thin RAII wrapper around the C helpers that
come from `protocol/c/alnp.h`. It exposes `AlpineClient`, which manages the socket
lifecycle plus frame emission, and a small `discovery` helper for compiling
profile config ids.

## Public API

- `alpine::sdk::AlpineClient` opens a UDP socket, computes a config id via
  `alpine_sdk_compile_profile`, and sends frames through `alpine_sdk_client_send_frame`.
- `alpine::sdk::discovery::compile_profile_config_id(...)` mirrors the C helper so
  C++ callers can compute the same config ids without touching the C structs.

## Example

```cpp
#include "alpine/sdk/client.hpp"

alpine::sdk::AlpineClient client("192.168.1.42", 5555);
const auto config_id = client.start_stream("live", 50, 50);
client.send_frame(buffer);
client.close();
```

## Embedded support

The SDK shares the same build decisions as `protocol/c`: there are no RTTI or
exceptions in the protocol layer when `ALPINE_EMBEDDED` is defined, and the
SDK simply links against those artifacts. When building for desktop platforms
you still get the `-fno-exceptions`/`-fno-rtti` experience because the protocol
layer forces them at build time.