aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md46
1 files changed, 46 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..75b6709
--- /dev/null
+++ b/README.md
@@ -0,0 +1,46 @@
+
+**nara** is a userspace implementation of [WireGuard](https://www.wireguard.io),
+a fast, modern and secure VPN based on [Noise](https://noiseprotocol.org/) protocol.
+
+### Build
+
+Only Linux and macOS are supported at this moment.
+
+To build **nara**, download and install [haskell-stack](https://github.com/commercialhaskell/stack) first.
+~~~
+$ stack setup
+$ stack install
+~~~
+
+### Usage
+
+The following command will create a TUN device named `wg0` and then daemonize
+to background.
+~~~
+# nara wg0
+~~~
+
+After that, use the usual `wg` tool to configure the device. For most
+distributions it's in the `wireguard-tools` package. Check the manpage
+of `wg` for details.
+
+### Status
+
+Currently this is just a prototype, and there are still a lot to be done.
+
+- [ ] Documents and test coverage
+- [ ] Receiver-side nonce deduplicate
+- [ ] Logging and better exceptions handling
+- [ ] Cookie support to prevent DDOS attack
+- [ ] Full IPv6 support
+- [ ] An accurate timer based approach to manage lifetimes
+- [ ] Send ICMP packets back in case of unreachable hosts
+- [ ] Persistent-keepalive
+- [ ] Per-host packet queue
+- [ ] Benchmark, and performance optimization
+- [ ] FreeBSD support (perhaps Windows support as well)
+- [ ] MTU discovery and setting
+
+### License
+
+This software is licensed in GPLv3+.