프로젝트 소개
# Omnia: 경량 WebAssembly 런타임
Omnia는 WebAssembly(WASI) 컴포넌트를 위한 경량의 안전한 런타임입니다. [wasmtime](https://github.com/bytecodealliance/wasmtime)을 얇고 사용하기 쉬운 래퍼로 감싸 HTTP, 메시징, 키-값 저장소, 모델 완성과 같은 호스트 기반 서비스를 WASI 애플리케이션에 쉽게 통합할 수 있게 합니다.
독립적으로 사용할 수도 있지만, Omnia는 주로 **Augentic의 Agent Skills**를 위한 런타임으로 설계되었습니다. 에이전트가 생성한 코드가 필요한 인프라에 통제된 접근을 유지하면서 안전한 샌드박스 환경에서 실행되도록 보장합니다.
## 왜 Omnia인가?
- **기본 보안**: 모든 게스트 코드는 엄격한 WebAssembly 샌드박스에서 실행됩니다. 네트워크, 파일시스템, 모델 접근과 같은 기능은 명시적으로 부여됩니다.
- **포괄적 기능**: HTTP, 키-값, 메시징, SQL, 블롭 및 문서 저장소, 비밀, 신원, WebSocket, 관측성, 모델 완성 등 일반적인 WASI 인터페이스를 기본 지원하며, 각각 구성이 필요 없는 기본 백엔드를 제공합니다.
- **개발자 친화적**: 타입이 명시된 게스트 API와 `runtime!` 호스트 매크로는 반복적인 전송 접착 코드 없이 경계를 명확히 유지합니다.
- **플러그형 아키텍처**: 게스트 코드를 변경하거나 재컴파일하지 않고 백엔드 구현(예: 인메모리에서 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` 기능 — 로더 호스트, 획득 정책, 플러그인 저장소; 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
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.