<p align="center">
<svg width="680" height="120" viewBox="0 0 680 120" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="@xemahq/kernel-state-runtime">
  <rect width="680" height="120" rx="14" fill="#0B1020"/>
  <g transform="translate(28,34)">
    <path d="M26 0 L52 15 L52 45 L26 60 L0 45 L0 15 Z" fill="#8B5CF6" opacity="0.18"/>
    <path d="M26 12 L41 21 L41 39 L26 48 L11 39 L11 21 Z" fill="#8B5CF6"/>
  </g>
  <text x="92" y="52" font-family="ui-monospace,SFMono-Regular,Menlo,monospace" font-size="22" fill="#F8FAFC" font-weight="700">@xemahq/kernel-state-runtime</text>
  <text x="92" y="80" font-family="ui-sans-serif,system-ui,sans-serif" font-size="15" fill="#94A3B8">Concrete adapters for the kernel-state contract</text>
  <text x="652" y="105" text-anchor="end" font-family="ui-sans-serif,system-ui,sans-serif" font-size="12" fill="#475569">xema.dev</text>
</svg>
</p>

<p align="center">
  <a href="https://xema.dev">Website</a> &middot;
  <a href="https://www.npmjs.com/package/@xemahq/kernel-state-runtime">npm</a>
</p>

<p align="center">
  <img alt="npm" src="https://img.shields.io/npm/v/%40xemahq%2Fkernel-state-runtime?color=2563eb&label=npm">
  <img alt="license" src="https://img.shields.io/npm/l/%40xemahq%2Fkernel-state-runtime?color=10b981">
  <img alt="types" src="https://img.shields.io/npm/types/%40xemahq%2Fkernel-state-runtime?color=3178c6">
</p>

# @xemahq/kernel-state-runtime

> Concrete adapters for the kernel-state contract

## Overview

Runtime adapter implementing the kernel-state contract over etcd — the single
KernelState backend for every deployment shape. A factory returns the etcd-backed
adapter for the given profile so callers depend on the contract, not a specific
backend.

## When to use it

- Use it to obtain a concrete kernel-state implementation chosen by deployment
  profile.

## Installation

```bash
pnpm add @xemahq/kernel-state-runtime
```

## Usage

```ts
import { createKernelState } from '@xemahq/kernel-state-runtime';

const state = createKernelState({ profile });
await state.put(key, value);
```

## License

Apache-2.0 &copy; Xema — [xema.dev](https://xema.dev)
