Sobre el proyecto
# Omnia: Runtime Ligero de WebAssembly
Omnia es un runtime ligero y seguro para componentes WebAssembly (WASI). Proporciona una capa delgada y ergonómica sobre [wasmtime](https://github.com/bytecodealliance/wasmtime) para integrar fácilmente servicios basados en host como HTTP, mensajería, almacenes key-value y completaciones de modelos en tus aplicaciones WASI.
Aunque puede usarse de forma independiente, Omnia está diseñado principalmente como el runtime para **Agent Skills de Augentic**. Garantiza que el código generado por agentes se ejecute en un entorno seguro y aislado, manteniendo acceso controlado a la infraestructura necesaria.
## ¿Por qué Omnia?
- **Seguro por defecto**: Todo el código invitado se ejecuta en un sandbox estricto de WebAssembly. Las capacidades (red, sistema de archivos, acceso a modelos) se otorgan explícitamente.
- **Todo incluido**: Soporte integrado para interfaces WASI comunes — HTTP, key-value, mensajería, SQL, almacenamiento de blobs y documentos, secretos, identidad, WebSockets, observabilidad y completaciones de modelos — cada una con un backend predeterminado de configuración cero.
- **Amigable para desarrolladores**: APIs de invitado explícitas y tipadas, y la macro de host `runtime!` mantienen los límites visibles sin pegamento de transporte repetitivo.
- **Arquitectura conectable**: Cambia implementaciones de backend (por ejemplo, de en memoria a Redis) sin modificar o recompilar el código invitado. Los backends de producción viven en el repositorio hermano [`omnia-backends`](https://github.com/augentic/omnia-backends).
- **Despliegues multi-invitado**: Un solo runtime puede alojar muchos invitados con enrutamiento declarativo, montajes de espacios de trabajo y enlaces invitado-a-invitado mediados por el host, todo impulsado por un manifiesto TOML.
## Inicio rápido
Compila un invitado y ejecútalo con un runtime de host de ejemplo:
```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
```
Un runtime de host es una sola invocación de macro — cada entrada empareja una interfaz WASI con el backend que la implementa:
```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,
}
});
```
## Documentación
**[Comienza con el índice de documentación](docs/README.md)** — una ruta gradual desde la primera ejecución hasta despliegues completos:
- [Cómo empezar](docs/getting-started.md) — primera compilación y ejecución, ~10 minutos
- Guías prácticas — [escribir invitados](docs/guides/writing-guests.md), [componer un runtime](docs/guides/composing-a-runtime.md), [despliegues multi-invitado](docs/guides/multi-guest-deployments.md), inmersiones en capacidades ([SQL](docs/guides/sql.md), [documentos](docs/guides/document-store.md), [mensajería](docs/guides/messaging.md), [modelo/MCP](docs/guides/model-completions.md)), [backends de producción](docs/guides/production-backends.md), [despliegue](docs/guides/deployment.md), [ajuste](docs/guides/performance-tuning.md)
- [Arquitectura](docs/Architecture.md), [Modelo de seguridad](docs/security-model.md) y [Glosario](docs/glossary.md)
- Referencia — [interfaces WASI](docs/reference/wasi-interfaces.md), [interfaz de modelo](docs/reference/model.md), [CLI](docs/reference/cli.md), [configuración](docs/reference/configuration.md)
- [Solución de problemas](docs/troubleshooting.md)
El directorio [`examples/`](examples/README.md) contiene un par completo de invitado + runtime funcional para cada interfaz.
## Crates
| Crate | Descripción |
| ----------------------------------------------- | ------------------------------------------------------------------------------------------ |
| [`omnia`](crates/omnia) | Raíz de composición — ensamblaje, ciclo de vida, composición de crates opcionales y `runtime!` |
| [`omnia-core`](crates/omnia-core) | SDK de runtime en vivo — motor wasmtime, registro, despacho, almacenes y telemetría |
| [`omnia-plugin`](crates/omnia-plugin) | Capacidad `omnia:plugins/loader` — host de cargador, políticas de adquisición y almacenes de plugins; seleccionado por la característica `plugin` de omnia |
| [`omnia-cli`](crates/omnia-cli) | Gramática de `run` hoja — clap más precedencia de argv; seleccionado por la característica `cli` de omnia |
| [`omnia-sdk`](crates/omnia-sdk) | SDK de invitado — `Handler`/`Client`/`Context`, enrutadores HTTP/mensajería y fachada de comandos, errores, capacidades y soporte MCP |
| [`omnia-guest-macros`](crates/guest-macros) | Atributo de observabilidad `#[instrument]` para invitados |
| [`omnia-host-macros`](crates/host-macros) | Macro proc `runtime!` para generación de runtime de host |
| [`omnia-wasi-blobstore`](crates/wasi-blobstore) | Enlaces de host e invitado de wasi:blobstore |
| [`omnia-wasi-config`](crates/wasi-config) | Enlaces de host e invitado de wasi:config |
| [`omnia-wasi-docstore`](crates/wasi-docstore) | Enlaces de host e invitado de almacén de documentos |
| [`omnia-wasi-http`](crates/wasi-http) | Enlaces de host e invitado de wasi:http |
| [`omnia-wasi-identity`](crates/wasi-identity) | Enlaces de host e invitado de identidad/OAuth |
| [`omnia-wasi-keyvalue`](crates/wasi-keyvalue) | Enlaces de host e invitado de wasi:keyvalue |
| [`omnia-wasi-messaging`](crates/wasi-messaging) | Enlaces de host e invitado de mensajería |
| [`omnia-wasi-model`](crates/wasi-model) | Enlaces de host e invitado de completación de omnia:model |
| [`omnia-wasi-otel`](crates/wasi-otel) | Enlaces de host e invitado de OpenTelemetry |
| [`omnia-wasi-sql`](crates/wasi-sql) | Enlaces de host e invitado de wasi:sql |
| [`omnia-wasi-vault`](crates/wasi-vault) | Enlaces de host e invitado de bóveda de secretos |
| [`omnia-wasi-websocket`](crates/wasi-websocket) | Enlaces de host e invitado de WebSocket |
## Licencia
MIT OR Apache-2.0
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.