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.