Use ghc::filesystem as fill on older GCC (e.g. RoboRIO). This can be removed once all GCC platforms have upgraded to 8.1 or later. File open functionality has been retained from LLVM but moved to "fs" namespace and tweaked for improved consistency with std::filesystem (e.g. error_code is passed by reference instead of returned). Also update WPILibC's Filesystem functions to return std::string.
HAL WebSockets Server
This is an extension that provides a server version of a WebSockets API for transmitting robot hardware interface state over a network. See the Robot Hardware Interface WebSockets API specification for more details on the protocol.
Configuration
The WebSockets server has a number of configuration options available through environment variables.
HALSIMWS_SYSROOT: The local directory to serve non-websocket HTTP content from (e.g. HTML files) starting from /. Defaults to the sim subdirectory of the current working directory.
HALSIMWS_USERROOT: The local directory to serve non-websocket HTTP content from (e.g. HTML files) starting from /user/. Defaults to the sim/user subdirectory of the current working directory.
HALSIMWS_PORT: The port number to listen at. Defaults to 3300.
HALSIMWS_URI: The URI path to use for WebSockets connections. Defaults to "/wpilibws".