Development and Testing
While it’s easy to cross compile Rust for different architectures, there are no guarantees that changes made to source code produce the correct result. This is where Windows Subsystem for Linux (WSL) comes in handy. WSL is a compatibility layer that translates system calls of Linux programs into the Windows equivalent. It is a native Windows alternative to programs such as Cygwin. This feature has been included in Windows 10 since the Fall Creators update in 2017, it just has to be enabled. Click here for instructions on how to enable WSL. There has also been a recent update to the WSL ecosystem – Windows 10 version 2004 or higher has the ability to enable WSL2. There is only one difference between WSL and WSL2, which is the compatibility layer is replaced with an actual Linux Kernel!
Now the Linux version of VT Anywhere can run on the same machine as the development environment without the need of a virtual machine! This aides in much faster development and testing because there is no need to move files between machines.
Most applications are installed with a one click executable, but this process is slightly different depending on what operating system is running the application. VT Anywhere offers two different versions, a server version, and a standalone all-in-one application. When it comes to the server version, cross platform compatibility is not a big issue since it is invoked on the command line.
While electron-builder will do most of the work for packaging applications for different operating systems, there are a few extra steps. Debian Linux targets require a .postinst and .postrm scripts to set file permissions and file cleanup when installing and removing Debian packages. This is an extra step to consider compared to the Windows equivalent NSIS.
While creating an application that will run on anything is a daunting task, there are plenty of free and open source tools that can help set you up for success.