Hi babel-users,

This is my first post to this list and as such also my first contact with the 
Babel community.

A couple of days ago, I started to work on implementation of the Babel protocol 
in Go driven by the following objectives:

- Embeddable Go-package / library
  - Possibly also a babeld-compatible daemon later-on
  - Alternatively, integration into bio routing daemon
- Unicast & RTT support
- Clean and concise code
- Portable to Linux, BSDs, Windows & macOS

My motivation to start a new Babel implementation is driven by the need for 
routing daemon for my WireGuard overlay network.
There exist a couple of projects which establish and manage a mesh-network 
based on WireGuard point-to-point links [3].
I recently also started to work on my own mesh network daemon named "cunicu" 
which is inspired by excellent Tinc-VPN [4].

Tinc-VPN had the ability to route traffic over intermediate hops when direct 
point-to-point connectivity cannot be established.
This is a very useful feature to me when reaching into corporate or mobile 
networks. And to my knowledge, this basic routing
functionality of Tinc-VPN is still a unique feature which more moderns mesh-VPN 
solutions like Tailscale, NetBird, netmaker, ... do not support.
Hence, my requirements for unicast and the RTT-extensions are driven by my 
use-case in WAN point-to-point links.

You can find its current state in my GitHub repo [1]. Most of the low-level 
packet de/encoding as well as transmission/reception is implemented.
Basic data structures also exist and first multicast neighbour discovery also 
succeeded.

I am now starting to implement the basic protocol logic like updates, requests 
and route selection.
But as newcomer to the Babel protocol, that will take me some more time to 
fully grasp the details of the protocol.

My hope is to find a few collaborators for my endeavor who can support me with 
the tricky parts of the protocol.
Maybe you just started your holiday looking for a small weekend project to hack 
on? Or you are looking into learning a new programming language?
Let me know! Hacking together on such a project is always more fun.

(I am working on this purely on my spare time. This is a hobby project for me 
without any job/commercial background.)

Best regards,

     Steffen (stv0g)

[1] https://github.com/stv0g/go-babel
[2] https://github.com/stv0g/cunicu/
[3] https://github.com/HarvsG/WireGuardMeshes
[4] https://www.tinc-vpn.org/



_______________________________________________
Babel-users mailing list
Babel-users@alioth-lists.debian.net
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/babel-users

Reply via email to