Sam Tuke
Mar 28 2020

Development update: Go portable

Share

Development update: Go portable

Sam Tuke Mar 28 2020 Share

Since our last development update, the world has adopted remote work, and email and internet traffic more generally has surged. Reliable email communication is more important than ever.

Leandro has been working on establishing the new technical foundation for Lightmeter’s future portability and growth. Let’s dive in.

Architecture

Lightmeter’s first release was a monolithic R Language application using the shiny framework. This provided a very efficient foundation to start and experiment with, but did not allow the addition of neccessary data sources and MTAs in future.

Below is a work in progress component generated using DataVis of the new Lightmeter architecture now being implemented. This provides a comprehensive, though incomplete map of the pieces to be built.

Component view diagram: work in progress architecture planning

So far an initial database layer, the beginnings of a Postfix parser, and an extremely minimalistic web interface have been added as part of the recently completed “Milestone 1” of the new Lightmeter Control Center.

Portability

The previous prototype also required distribution as a docker image, due to a very slow compilation process, with a disk footprint exceeding hundreds of megabytes. This made downloading and deploying the app inconvenient, not to mention dependent upon Docker.

Now Lightmeter is being rewritten in the Go language. Apart from being easy to read and having a rich library ecosystem, Go is extraordinarily portable.

The latest development versions of Lightmeter, once compiled, are just 15 mb in size, and contained within a single binary which runs across Unix systems, and according to initial WINE testing, on Windows too.

Future versions will inevitably be larger, but packaging parsers, databases, and even a web server with web assets in a single distributable file should make running Lightmeter very much simpler.

Get involved

  • Try out the latest click prototype in a 30 minute web chat and share your views – we need them!
  • Check out the Lightmeter repositories on GitLab and get hacking

Comments are closed.