Technical details on Kontrast HTTP server

Kontrast HTTP server is a small (~200 kB) single-threaded, single-process standalone executable written in the C programming language. The server directly uses native system calls of the OS for asynchronous file, network and serial port operations (IO completion ports on windows, the kernel event queue on MacOS/FreeBSD, epoll on Linux). The server allocates a fixed amount of memory per connection and per serial port with rare additional heap allocations and memory copies after initialization.

It is possible to build Kontrast HTTP server with static linking against the musl libc (this is also the default for the Linux release). You can easily run the server on hardware such as the Raspberry Pi. Please contact us if you require executables for ARM or other architectures.

If your lab equipment requires specialized settings for using your serial device (such as particular flow control settings) that cannot be set with the available options, please contact us.

Available platforms and architectures

Platform-specific differences

On Linux and FreeBSD, the browser open option is ignored, due to inconsistent availability and behavior of the xdg-open utility (in some cases it blocks, in some cases is forks).