-
Try out the new Jake: AI Coding Assistant for LabVIEW (beta)!
Get answers to questions about LabVIEW and discuss your code.
IG HTTP Server by Illuminated G - Toolkit for LabVIEW Download
HTTP Web Server implemented with 100% LabVIEW. Includes HTTPS, Form handling, Sessions, WebSocket Upgrades, and more.
Version | 0.5.3.36 |
Released | Oct 16, 2023 |
Publisher | Illuminated G |
License | MIT |
LabVIEW Version | LabVIEW>=20.0 |
Operating System | Windows, Mac, and Linux |
Dependencies | illuminatedg_lib_ig_http_utils illuminatedg_lib_ig_simple_msg illuminatedg_lib_ig_stream_base illuminatedg_lib_ig_tcp_stream illuminatedg_lib_ig_web&crypto illuminatedg_lib_ig_websocket_stream |
Used By | illuminatedg_lib_ig_godotserver |
Project links | Homepage Discussion |
Description
HTTP Web Server for LabVIEW applications. Provides easy to use common features such as file serving and request handling akin to LabVIEW Web Services. The underlying processing flow is comprised of many steps that can be augmented with additional functionality by registering interface implementations specific to each step.
For demos and examples see the IG HTTP Server Examples package.
This project is under active development and as such should not be considered a secure web server implementation without your own verification with the features you use. This server does aim to default to the more secure option when possible and enables important features such as HTTPS and secure WebSockets but care should always be taken any time a server is exposed to a network.
The github repository at https://github.com/illuminated-g/lv-http-server provides most of the high level documentation and there are plenty of examples to demonstrate the available features.
Features of this web server include:
- HTTPS including automatic redirecting from port 80 to the HTTPS port
- File Serving - includes protections against attacks trying to ascend out of the specified root folder
- Sessions (& Cookies) - Ability to store user data server side across requests
- WebSocket connection upgrades - Enable WebSocket connection by request path at the same port the web content is accessed at.
- CSRF tokens to make it easier to protect against POST and other submission attacks
- Request processing trace logging - Useful for debug and performance testing
- Authentication framework - Automated redirects to login page, logout handling, ability to plug in implementations for users and user providers to identify requests, and utilities for ensuring passwords are handled in a more secure manner.
- Debug mode to respond to error requests with the full error message
Needs work:
- Caching - implemented but caching handlers don't react to cache headers properly.
Release Notes
Known Issues:
- Cache control does not work properly.
0.5.3.36
- Removal of VIMs throughout implementation preventing builds on RT.
- Cleanup and documentation of some public VIs (github repo is still the best source for documentation)
0.5.2.34
- Fix bug introduced with wrapped TCP server that enabled websocket upgrades not being used for encrypted connections
0.5.1.32
- Make insecure server port input not required, default to port 80
0.5.1.31
- Remove examples from server package so new examples can be created without version bumping server.