このプロジェクトについて

# Omnia: 軽量WebAssemblyランタイム Omniaは、WebAssembly(WASI)コンポーネント向けの軽量でセキュアなランタイムです。[wasmtime](https://github.com/bytecodealliance/wasmtime) の薄くて使いやすいラッパーを提供し、HTTP、メッセージング、キーバリューストア、モデル補完などのホストベースのサービスをWASIアプリケーションに簡単に統合できます。 単体でも使用できますが、Omniaは主に**AugenticのAgent Skills**のランタイムとして設計されています。エージェント生成コードが、必要なインフラストラクチャへの制御されたアクセスを維持しながら、安全でサンドボックス化された環境で実行されることを保証します。 ## Omniaを選ぶ理由 - **デフォルトでセキュア**: すべてのゲストコードは厳格なWebAssemblyサンドボックス内で実行されます。機能(ネットワーク、ファイルシステム、モデルアクセス)は明示的に付与されます。 - **バッテリー同梱**: 一般的なWASIインターフェース(HTTP、キーバリュー、メッセージング、SQL、ブロブおよびドキュメントストレージ、シークレット、アイデンティティ、WebSocket、可観測性、モデル補完)を内蔵サポートし、それぞれにゼロコンフィグのデフォルトバックエンドがあります。 - **開発者フレンドリー**: 型付きの明示的なゲストAPIと`runtime!`ホストマクロにより、反復的なトランスポートグルーなしで境界を明確に保ちます。 - **プラグ可能なアーキテクチャ**: ゲストコードを変更または再コンパイルせずにバックエンド実装(例:インメモリからRedisへ)を交換できます。本番バックエンドは、関連する[`omnia-backends`](https://github.com/augentic/omnia-backends)リポジトリにあります。 - **マルチゲストデプロイメント**: 1つのランタイムで、宣言的なルーティング、ワークスペースマウント、ホスト仲介のゲスト間リンクを使用して複数のゲストをホストでき、すべて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`機能 — ローダーホスト、取得ポリシー、プラグインストア; omniaの`plugin`機能で選択 | | [`omnia-cli`](crates/omnia-cli) | リーフ`run`文法 — clapとargv優先順位; omniaの`cli`機能で選択 | | [`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) | アイデンティティ/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