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