orches

Crates.ioorches
lib.rsorches
version0.1.0
created_at2025-12-13 16:54:10.003607+00
updated_at2025-12-13 16:54:10.003607+00
descriptionOrches - The manager of WASM: zero-code WASM runtime with ultra-fast cold starts
homepage
repositoryhttps://github.com/Omar52344/orches.git
max_upload_size
id1983167
size99,416
(Omar52344)

documentation

README

Orches 🔥 Docker for WebAssembly — Deploy microservicios WASM en milisegundos con cold starts ultra-rápidos, límites de recursos estrictos y telemetría integrada por entorno. Orches es un orquestador WASM nativo en Rust que te permite desplegar y ejecutar módulos WebAssembly como si fueran contenedores Docker, pero con:

Cold starts < 15ms Aislamiento real (sandbox Wasmtime) Telemetría automática (OpenTelemetry OTLP + Jaeger) Multi-entorno nativo (dev/staging/prod con OTLP separado) - Multi-entorno nativo (service@dev, service@staging, service@prod) Configuración simple con orches.toml Zero-code para casos simples

"Si Docker revolucionĂł los contenedores, Orches revoluciona WASM en el edge y serverless."

🚀 Quick Start (30 segundos)

Instala Orches

cargo install orches

Crea una carpeta con tu servicio:

my-service/ ├── orches.toml ├── payment.wasm └── payment.wit (opcional)

orches.toml:

name = "payment-service" environment = "production" otlp_endpoint = "http://localhost:4318/v1/traces" memory_mb = 128

[[routes]] path = "/charge" method = "POST" function = "charge"

[[routes]] path = "/health" method = "GET" function = "health"

Despliega y corre:

orches deploy my-service/ orches deploy examples/payment-service --port 3001

→ Server en http://0.0.0.0:3000 con endpoints automáticos.

Prueba:

curl http://localhost:3000/health curl -X POST http://localhost:3000/charge -d '{"amount": 999}'

Abre Jaeger → filtra por service.name = payment-service

¡Listo! Traces automáticos con duración, runtime_id y eventos custom.

⚡ Por qué Orches

Feature Cold start <15ms TelemetrĂ­a por entorno Integrada desde v1 Multi-entorno nativo,SĂ­ (name@env) ConfiguraciĂłn,orches.toml simple LĂ­mites de memoria (hard) SĂ­ CLI orches deploy folder/

📦 Estructura de un servicio Cada servicio es una carpeta con:

orches.toml → Configuración y rutas *.wasm → Tu módulo compilado *.wit → Interfaz (próximo: tipos automáticos)

Ejemplo completo en /examples/payment-service

đź”­ Observabilidad Orches usa tu librerĂ­a wasm-obs-agent-lib para enviar traces OTLP con:

service.name = nombre del orches.toml environment = dev/staging/prod Endpoint configurable por entorno

Filtra en Jaeger por service.name y environment.

🛡️ Seguridad y Recursos

Sandbox total (Wasmtime) LĂ­mites de memoria duros Fuel para evitar bucles infinitos Timeout por request

Roadmap

Deploy desde carpeta Rutas automáticas Telemetría por entorno Soporte WIT completo (tipos reales) Docker image oficial Orches Cloud (SaaS) SDK para power users

Contribuye ¡Orches es open source y necesita tu ayuda!

¡Orches es open source!

Abre issues EnvĂ­a PRs Ăšnete al movimiento WASM

Abre issues PRs bienvenidos Ăšnete al Discord (prĂłximo)

Licencia MIT OR Apache-2.0

Orches — Porque tus microservicios WASM merecen encenderse como un rayo. 🔥 ¿Listo para probar?

Markdown## Uso

InstalaciĂłn

cargo install orches

Desplegar (puerto 3000 por default)

orches deploy my-service/

Desplegar en puerto especĂ­fico (para multi-servicio)

orches deploy my-service/ --port 3001

Prueba

curl http://localhost:3001/health curl -X POST http://localhost:3001/charge -d '{"amount": 999}'

Commit count: 0

cargo fmt