Об этом проекте
# Omnia: легковесная среда выполнения WebAssembly
Omnia — это легковесная безопасная среда выполнения для компонентов WebAssembly (WASI). Она предоставляет тонкую, эргономичную обёртку вокруг [wasmtime](https://github.com/bytecodealliance/wasmtime), позволяющую легко интегрировать хост-сервисы, такие как HTTP, обмен сообщениями, хранилища ключ-значение и генерацию моделью, в ваши приложения WASI.
Хотя Omnia можно использовать автономно, в первую очередь она разработана как среда выполнения для **Agent Skills компании Augentic**. Она гарантирует, что код, сгенерированный агентом, выполняется в безопасной изолированной среде, сохраняя при этом контролируемый доступ к необходимой инфраструктуре.
## Почему Omnia?
- **Безопасность по умолчанию**: весь гостевой код выполняется в строгой песочнице WebAssembly. Возможности (сеть, файловая система, доступ к модели) предоставляются явно.
- **Всё включено**: встроенная поддержка распространённых интерфейсов WASI — HTTP, key-value, обмен сообщениями, SQL, blob- и документное хранилище, секреты, идентификация, WebSockets, наблюдаемость и генерация моделью — каждый с бэкендом по умолчанию без конфигурации.
- **Удобство для разработчиков**: типизированные явные гостевые API и хост-макрос `runtime!` делают границы видимыми без повторяющегося связующего кода транспорта.
- **Подключаемая архитектура**: заменяйте реализации бэкендов (например, с in-memory на Redis) без изменения или перекомпиляции гостевого кода. Продакшен-бэкенды находятся в соседнем репозитории [`omnia-backends`](https://github.com/augentic/omnia-backends).
- **Развёртывания с несколькими гостами**: одна среда выполнения может размещать множество гостей с декларативной маршрутизацией, монтированием рабочих пространств и опосредованной хостом связью гость-гость, всё управляется манифестом TOML.
## Быстрый старт
Соберите гостя и запустите его с примером хост-среды выполнения:
```bash
cargo build --example http-wasm --target wasm32-wasip2
RUST_LOG=info cargo run --example http -- run ./target/wasm32-wasip2/debug/examples/http_wasm.wasm
```
Хост-среда выполнения — это один вызов макроса; каждая запись сопоставляет интерфейс WASI с бэкендом, который его реализует:
```rust,ignore
use omnia_wasi_http::{HttpDefault, WasiHttp};
use omnia_wasi_keyvalue::{KeyValueDefault, WasiKeyValue};
use omnia_wasi_otel::{OtelDefault, WasiOtel};
omnia::runtime!({
hosts: {
WasiHttp: HttpDefault,
WasiOtel: OtelDefault,
WasiKeyValue: KeyValueDefault,
}
});
```
## Документация
**[Начните с индекса документации](docs/README.md)** — постепенный путь от первого запуска до полных развёртываний:
- [Начало работы](docs/getting-started.md) — первая сборка и запуск, ~10 минут
- Практические руководства — [написание гостей](docs/guides/writing-guests.md), [компоновка среды выполнения](docs/guides/composing-a-runtime.md), [развёртывания с несколькими гостами](docs/guides/multi-guest-deployments.md), углублённое изучение возможностей ([SQL](docs/guides/sql.md), [документы](docs/guides/document-store.md), [обмен сообщениями](docs/guides/messaging.md), [модель/MCP](docs/guides/model-completions.md)), [продакшен-бэкенды](docs/guides/production-backends.md), [развёртывание](docs/guides/deployment.md), [настройка производительности](docs/guides/performance-tuning.md)
- [Архитектура](docs/Architecture.md), [Модель безопасности](docs/security-model.md) и [Глоссарий](docs/glossary.md)
- Справочник — [интерфейсы WASI](docs/reference/wasi-interfaces.md), [интерфейс модели](docs/reference/model.md), [CLI](docs/reference/cli.md), [конфигурация](docs/reference/configuration.md)
- [Устранение неполадок](docs/troubleshooting.md)
Каталог [`examples/`](examples/README.md) содержит полную рабочую пару гость + среда выполнения для каждого интерфейса.
## Крейты
| Крейт | Описание |
| ----------------------------------------------- | ------------------------------------------------------------------------------------------ |
| [`omnia`](crates/omnia) | Корень композиции — сборка, жизненный цикл, композиция опциональных крейтов и `runtime!` |
| [`omnia-core`](crates/omnia-core) | SDK живой среды выполнения — движок wasmtime, реестр, диспетчеризация, хранилища и телеметрия |
| [`omnia-plugin`](crates/omnia-plugin) | Возможность `omnia:plugins/loader` — хост загрузчика, политики получения и хранилища плагинов; выбирается функцией `plugin` в omnia |
| [`omnia-cli`](crates/omnia-cli) | Конечная грамматика `run` — clap плюс приоритет argv; выбирается функцией `cli` в omnia |
| [`omnia-sdk`](crates/omnia-sdk) | Гостевой SDK — `Handler`/`Client`/`Context`, маршрутизаторы HTTP/обмена сообщениями и командный фасад, ошибки, возможности и поддержка MCP |
| [`omnia-guest-macros`](crates/guest-macros) | Атрибут наблюдаемости `#[instrument]` для гостей |
| [`omnia-host-macros`](crates/host-macros) | Процедурный макрос `runtime!` для генерации хост-среды выполнения |
| [`omnia-wasi-blobstore`](crates/wasi-blobstore) | Хост- и гостевые привязки wasi:blobstore |
| [`omnia-wasi-config`](crates/wasi-config) | Хост- и гостевые привязки wasi:config |
| [`omnia-wasi-docstore`](crates/wasi-docstore) | Хост- и гостевые привязки документного хранилища |
| [`omnia-wasi-http`](crates/wasi-http) | Хост- и гостевые привязки wasi:http |
| [`omnia-wasi-identity`](crates/wasi-identity) | Хост- и гостевые привязки Identity/OAuth |
| [`omnia-wasi-keyvalue`](crates/wasi-keyvalue) | Хост- и гостевые привязки wasi:keyvalue |
| [`omnia-wasi-messaging`](crates/wasi-messaging) | Хост- и гостевые привязки обмена сообщениями |
| [`omnia-wasi-model`](crates/wasi-model) | Хост- и гостевые привязки завершения omnia:model |
| [`omnia-wasi-otel`](crates/wasi-otel) | Хост- и гостевые привязки OpenTelemetry |
| [`omnia-wasi-sql`](crates/wasi-sql) | Хост- и гостевые привязки wasi:sql |
| [`omnia-wasi-vault`](crates/wasi-vault) | Хост- и гостевые привязки хранилища секретов |
| [`omnia-wasi-websocket`](crates/wasi-websocket) | Хост- и гостевые привязки WebSocket |
## Лицензия
MIT OR Apache-2.0
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.