March 12, 2021

Transition to Go 1.16, reduced binary size, TUN seteuid

Go 1.16 now supports including static files and file trees natively as part of the final executable using the new //go:embed directive. This has resulted in a 47.2% file size decrease of the client binary (from 36M to 19M).

In addition, Setuid and related calls on Linux are now implemented (previously they returned an syscall.EOPNOTSUPP error), which allows the client tun binary to be configured with appropriate privileges for improved security and user-experience, especially in regards to the upcoming GUI frontend.

Changes

client

  • Transition to Go v1.16.
  • Implemented usage of Go v1.16 embed functionality.
  • Final executable file size reduced by 47.2%.
  • Improved security and UX by using seteuid in tun.

relay

  • Transition to Go v1.16.

contract

  • Transition to Go v1.16.

directory

  • Transition to Go v1.16.

auth

  • Transition to Go v1.16.

ps-dummy

  • Transition to Go v1.16.

ps-stripe

  • Transition to Go v1.16.
  • Implemented usage of Go v1.16 embed functionality.