ZeroTier (a virtual networking layer) anyone looking into adding Elixir bindings?

Wondering whether anyone has been playing around with http://zerotier.com?

ZeroTier delivers the capabilities of VPNs, SDN, and SD-WAN with a single system. Manage all your connected resources across both local and wide area networks as if the whole world is a single data center.

I have found it very easy to setup encrypted lans spanning my laptop, my home laptop, a local vm and remote vms. GitHub - zerotier/libzt: Encrypted P2P sockets over ZeroTier in particular looks very interesting for embedded. Imagine a globally accessible lan spanning your devices, datacenters, networks and applications.

1 Like

I can’t see how this is relevant for Elixir, or where the general question is so have moved it to the General Programming Chat section for now.

If you can explain the connection to Elixir we can move it back.

3 Likes

It’d be great to figure out the best way to get zerotiercore or libzt linked into elixir/erlang. You’d get magic peer discovery over the WAN for free. Not sure if it’d be a Port or NIF.

2 Likes

Yes, that’s part of the reason I posted this. The available bindings https://github.com/zerotier/libzt/tree/master/examples/bindings presently do not include elixir / erlang and I am wondering if anyone has been looking into it. Seems a potential fit for the nerves project.

1 Like

Hmm… I guess the use-case is, you boot your elixir package somewhere and just appears in your virtual network / backplane and can talk to your other instances and things like databases over it.

I’m having trouble thinking about how it would work with a Port. I think we need zerotier integrated directly into OTP :wink:

1 Like

You do not have to use those libraries to use ZeroTier. It creates a virtual network adapter in the host system, and you can route all your traffic, from all applications through it.

Their SDK provides an alternate sockets API that obviates the need the for the virtual network in the host OS…but at the cost that you must use an alternate sockets API.

Some info on configuring the host system.

2 Likes

ah yes indeed

I have found it very easy to setup encrypted lans spanning my laptop, my home laptop, a local vm and remote vms

1 Like

Considering it’s GPLv3 bindings for libzt that pretty much nukes it for linking into the VM for all practical purposes. I’m a huge fan of zerotier in general (I’m a subscriber) in the OS layer, and I’d hope in time libzt gains enough traction to be re-released under a license that is compatible with the GPL “combined works clause” along with the Apache v2.0 license used by Erlang/OTP. If you’re wondering what ZT is, http://packetpushers.net/podcast/podcasts/pq-134-meet-zerotier-open-source-networking/ is a reasonable podcast intro.

1 Like

Are you using it in prod. or just for personal projects it looks super convenient especially for cross cloud stuff or smaller clouds like DO?

1 Like

I’m using it to provide a secure backplane across containers (FreeBSD jails) across a bunch of physical and virtual systems in different datacentres.

2 Likes