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 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.
- 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.
- 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.
- One goal of the project is to keep executable size as small as possible, ideally less than 10 MB for a Linux system.
- 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.