
BadVPN – Peer-To-peer VPN System, and NCD, a Network Configuration DSL - mmel
https://github.com/ambrop72/badvpn
======
ambrop7
Note that NCD is really not far from a general-purpose programming language.
You can see some "modern" NCD code of mine here [1] where I use it to control
a Sphero robot with a joystick. Well, I admit I added a few more features to
NCD while coding that.

Probably the most important feature missing is floating-point math, which I
had to outsource to a Python program. Which was possible since NCD does have
the facilities to create child processes and communicate with them over pipes.
It also has TCP sockets and a higher-level simple RPC mechanism using
"NCDValues".

[1]
[https://github.com/ambrop72/spherojoy](https://github.com/ambrop72/spherojoy)

------
AdmiralAsshat
Why is it called badvpn?

~~~
ambrop7
(author of BadVPN here; I did not submit this)

No particular reason really, I just needed a name that sounded deviant - I was
still a teen back then! Over time I added other software to the repo for
convenience (tun2socks, NCD). A name change might in fact be due.

Unfortunately some of the docs got "lost" by the killing of Google Code - it
can still be found in [1]. Currently the project is essentially in maintenance
mode, though I'm not opposed to someone contributing new features (especially
to NCD, I realy love and still use NCD!).

Note that the software is packaged in a few Linux distros (I know about
Gentoo, Arch and NixOS).

[1] [https://github.com/ambrop72/badvpn-googlecode-
export/tree/wi...](https://github.com/ambrop72/badvpn-googlecode-
export/tree/wiki)

