xnano.server.native
xnano.server.native
¶
xnano.server.native
Render applications offscreen and expose their cell frames to browsers.
Classes:
-
NativeWebServer–Serve one application from an owned offscreen runtime.
Functions:
-
serve_native–Serve an application until interrupted.
NativeWebServer
¶
NativeWebServer(
address: tuple[str, int],
factory: Callable[[], Any],
*,
state: Any = None,
title: str = "xnano",
width: int = 80,
height: int = 24
)
Bases: HTTPServer
Serve one application from an owned offscreen runtime.
Attributes:
-
factory–Callable that creates the root grid or component.
-
root–Root grid or component being served.
-
title–Browser document title.
-
runtime(Runtime[Any] | None) –Offscreen runtime used to render frames and dispatch input.
Example
from xnano.components import Text server = NativeWebServer(("127.0.0.1", 0), lambda: Text("Ready")) server.server_address[1] > 0 True server.server_close()
Methods:
-
serve_forever–Serve requests and release the runtime on its owner thread.
-
server_close–Close both the HTTP listener and offscreen runtime.
Source code in xnano/server/native.py
serve_native
¶
serve_native(
factory: Callable[[], Any],
*,
state: Any = None,
title: str = "xnano",
host: str = "127.0.0.1",
port: int = 8000,
width: int = 80,
height: int = 24
) -> None
Serve an application until interrupted.
Parameters:
-
factory(Callable[[], Any]) –Callable returning the root grid or component.
-
state(Any, default:None) –Application state shared with hooks.
-
title(str, default:'xnano') –Browser document title.
-
host(str, default:'127.0.0.1') –Bind address.
-
port(int, default:8000) –Bind port.
-
width(int, default:80) –Offscreen viewport width.
-
height(int, default:24) –Offscreen viewport height.