Cyclus Server¶
Cyclus may also be run as an interactive server if it was compiled with Python v3.5.2+ support.
The Cyclus server is a websockets server that uses JSON to send and recieve instructuctions from the websockets client (typically a webbrowser). The Cyclus server works by having a queue of actions that are executed at the end of each time step (repeating actions). Additionally, certain actions may be registered to occur only when the server first loads (initial actions). Server actions may include anything from returning database queries, simple echo messages, or shutting down the server itself.
To start up the Cyclus server, use the following command line utility, spawned via Python.
$ python -m cyclus.server
For more information, please refer to the help:
$ python -m cyclus.server -h
usage: cyclus [-h] [-o OUTPUT_PATH] [--debug] [--host HOST] [-p PORT]
[-n NTHREADS] [-r REPEATING_ACTIONS [REPEATING_ACTIONS ...]]
[-i INITIAL_ACTIONS [INITIAL_ACTIONS ...]]
[input_file]
Cyclus Server CLI
positional arguments:
input_file path to input file
optional arguments:
-h, --help show this help message and exit
-o OUTPUT_PATH, --output-path OUTPUT_PATH
output path
--debug runs the server in debug mode.
--host HOST hostname to run the server on
-p PORT, --port PORT port to run the server on
-n NTHREADS, --nthreads NTHREADS
Maximum number of thread workers to run with.
-r REPEATING_ACTIONS [REPEATING_ACTIONS ...], --repeating-actions REPEATING_ACTIONS [REPEATING_ACTIONS ...]
list of repeating actions
-i INITIAL_ACTIONS [INITIAL_ACTIONS ...], --initial-actions INITIAL_ACTIONS [INITIAL_ACTIONS ...]
list of initial actions to queue
Examples¶
# Run an input file in server mode, returning all of the output
# table data over the websocket each time step.
$ python -m cyclus.server input.json
# print the NullRegion annotations and exit
$ python -m cyclus.server -i agent_annotations spec=":agents:NullRegion" shutdown
Web Application for Testing¶
Cyclus also ships with a simple web application that is an example client for Cyclus server. You may start this web app (after starting Cyclus Server) with the following command in a new terminal:
$ python -m cyclus.webapp
To access this web application, point your browser to `http://localhost:4200`_.