# Use with Low-Power Devices

If you're hosting a set of HTML webpages on a device that doesn't change often and is low-power (router, camera, IoT, etc.), we recommend using go-live. Some of the main reasons are listed below:   &#x20;

### Go Ecosystem

* Go is able to be compiled for a variety of different operating systems and compute architectures.&#x20;
* Includes a garbage collector and memory manager in the executable. Avoids Segfaults.
* Static typing encourages supportable code and easy module versioning for open source.&#x20;

### Efficient Performance

* go-live can serve many concurrent requests and file downloads efficiently.&#x20;
* Efficiency means the program can either run faster given a high power system, or can run well on a lower power system with a small chip or power constratins.&#x20;
* Interested in benchmarking go-live? Your results are appreciated.

### Run Anywhere

* On IoT devices, ARM reigns supreme. go-live is able to run on the ARM architecture, including arm32 and arm64.
* Runnable on phones and Rasberry Pis.
* Supports Windows, Mac, and Linux out of the box.
* Not seeing your proper compiled binary? Build the system from scratch and compile it for your system using any Golang compilation flags.

### Low File Size

* One goal of the project is to keep executable size as small as possible, ideally less than 10 MB for a Linux system.

### Use in System on a Chip (SoC)

* One item to research is whether we can use Tamago (<https://github.com/f-secure-foundry/tamago>) to create an entirely self-contained go-live system. It runs exclusively on an ARM processor without needing Linux.
* Once running on an SoC it can serve files on network file system or thumbdrive.
