Feedback on Tailscale implementation, v4.2 firmware

the combined binary probably saves you the most space.
it would be hard but not impossible to go much beyond what you can get out of the instructions on that page.

I think the connected clients is only ones that are getting an IP address from the DHCP server, but if there’s a VPN specific connected clients list… well, I don’t use it.

Wow, those results are impressive. 4,5 MB would likely fit on the 32 MB NOR flash of Beryl. I don’t have a go environment set up, unfortunately. Is there no service that distributes different kinds of packed versions of such programs like there is for javascript with jsdelivr a.o.?

Actually, would that be the case if the low RAM GL router is not itself used as an exit node but merely for routing its clients’ traffic through another exit node which has plenty of RAM?

Using as an exit node vs client using exit node, the wireguard-go load would be about the same assuming you’re just talking about 2 devices.
I believe the tests leading to oomkill in the tailscale bug report were while using an exit node rather than running an exit node.

I have some time coming up where I could look into how to do this. Once I have the combined and compressed binary, how would I get it installed on an original Beryl where the current firmware doesn’t even have the Tailscale menu items in the GL firmware?

You would need to do some setup outside of the GL scripts / ui.
You might consider running on a standard OpenWrt build if there are incompatibilities with the GL scripts.
Pretty standard stuff with some guides for doing it in luci after installing tailscale and telling it to run from an SSH session.
https://openwrt.org/docs/guide-user/services/vpn/tailscale/start