2 · Crear un proyecto

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

Declarar la dependencia

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.

Un servidor mínimo

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:

Compilar y correr

$ 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.