Mosquito is, compared to many open source tools, relatively easy to configure and compile. You will need:
Any other dependencies of Mosquito are bundled into the source distribution -- namely Bob Jenkins' ISAAC stream cipher, LuaSocket and the Hamster build tool.
Step 1: Extracting the Tarball
If you need an explanation, you should probably stop, here, and avoid powertools.
Step 2: Building the Core
Mosquito can be abstracted as three major components, the Core, which provides a specialized Lua interpreter, the Drone, which packages the Drone and a compiled Lua program implementing remote control functionality, and the Console for controlling the Drone, which is also a bundle of Core and various Lua utilities.
Assuming your current working directory is the top level of the source distribution, invoke the following to build the core:
sh bin/build.sh core
Step 3: Configuring Your Deployment
When assembling a Drone or Console, Mosquito employs a trio of configuration files to instruct them how to communicate with each other -- it must generate a 4096 bit RSA key for performing affiliation, supply a pair of randomly generated passphrases for verifying the link, and assign a host and port for the console.
To perform this step, invoke the following to configure:
sh bin/config.sh
Step 4: Building the Drone
If you are going to be using your drone on another platform, you must copy the resulting config/* files to a matching OS/Architecture for compilation, or set up a cross compilation environment, prior to invoking the following script: ( Note, this will rebuild the Core if necessary )
sh bin/build.sh drone
Step 5: Building the Console
As with Step 4, if you will be employing the console on another platform, you will again need to copy the config/* files to a matching OS/Architecture for compilation, or set up a cross compilation environment.
sh bin/build.sh console
Step 6: Profit!
The resulting drone and console binaries can be found in the build directory, as build/drone and build/console. To connect them, you must ensure the Console is running prior to the Drone; in later versions of Mosquito, execution order may depend on the transports used.
If the Drone can succesfully connect to the Console, a REPL ( Read, Eval, Print, Loop ) will be established on the Console. Lua statements issued to the Console will be encrypted by the transport, and transmitted to the Drone. The returned value of the statement will then be transmitted by the Drone to the Console.
Due to the proof of concept nature of this version of Mosquito, further functionality has not been included. It is relatively simple to extend the drone and console with additional modes of operation -- see src/mosquito/drone.lua and src/mosquito/console.lua.