ntop / n2n

Peer-to-peer VPN
GNU General Public License v3.0
6.18k stars 930 forks source link

possible to rewrite n2n with golang #1027

Closed passerbyo closed 1 year ago

Logan007 commented 2 years ago

Hi there,

I am not sure if your issue is meant as an offer, i.e. you want to implement n2n in Go yourself. As n2n is under GPL3, you can just fork it and re-write it as long as you obey the license.

If it is more a request you are making, we need to see if enough people interested in re-writing show up.

As much as I sometimes wish for a simpler and easier coding as well as for help with buffers and pointers, I also see some Go properties conflicting with n2n's major project aims of being lightweight and fast. With a view to the future 4.x series, which would be a good point for changing programming language if ever desired, I have not considered anything else than C so far. Also, a complete switch-over would not allow to re-use some important parts of our core code such a cryptography; the complete code would need to be rewritten. If you ask me, this is something that would occupy the currently active coding team for years (or so).

But I am just speaking for myself here. Maybe we can hear more opinions about it?

Smallthing commented 2 years ago

I think if you want a Golang n2n, you can write your own code and work with the official one. Personally, I think the C version of n2n is good enough, and if a new language is needed (e.g. to make it more accessible to new generations of programmers), I think rust is a better choice. I think Rust is a better choice for memory security memory footprint, cryptographic libraries, interoperability with C, multi-threaded security, etc., all much smaller compared to Golang.