nyx init arma un proyecto: un manifiesto
nyx.toml y un punto de entrada src/main.nx.
Agregamos una línea para declarar el framework como dependencia.
$ nyx init notes-app $ cd notes-app
Abre nyx.toml y agrega nyx-serve bajo [dependencies]:
# nyx.toml [package] name = "notes-app" version = "0.1.0" main = "src/main.nx" [dependencies] nyx-serve = "*"
"*" le dice al gestor de paquetes que traiga nyx-serve
desde github.com/nyxlang-dev/nyx-serve a
packages/ en el próximo build. También puedes fijar una URL
completa — nyx-serve = "https://github.com/nyxlang-dev/nyx-serve"
— o vendorizar la librería en packages/ y commitearla, que
es lo que hacen los sitios de producción para builds reproducibles.
Reemplaza src/main.nx por:
import "std/web" import "nyx-serve/src/server" fn home(req: Request) -> Response { return response_html(200, "<h1>notes-app</h1>") } fn main() { let app: App = app_new() app_get(app, "/", home) serve_app(app, 3000, 8) }
Las tres piezas, según los imports:
std/web — el núcleo App, Request, Response y los constructores response_*.nyx-serve/src/server — serve_app (el servidor keep-alive multi-hilo) y app_ws.src/files, src/template, src/multipart.$ nyx run notes-app starting on port 3000 with 8 workers
En otra terminal:
$ curl http://localhost:3000/ <h1>notes-app</h1>
nyx run compila y después corre. nyx build solo
produce el binario (con el nombre de tu paquete) — ese único archivo es
lo que copias a un servidor.