Use with Low-Power Devices

Our goal is for go-live to be used as a slim file-server, similar to SQLite, for embedded systems and IoT.

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:

Go Ecosystem

  • Go is able to be compiled for a variety of different operating systems and compute architectures.

  • Includes a garbage collector and memory manager in the executable. Avoids Segfaults.

  • Static typing encourages supportable code and easy module versioning for open source.

Efficient Performance

  • go-live can serve many concurrent requests and file downloads efficiently.

  • 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.

  • 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.

Last updated