aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md46
-rw-r--r--nara.cabal8
2 files changed, 48 insertions, 6 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+.
diff --git a/nara.cabal b/nara.cabal
index fd1cc0e..76ee7cb 100644
--- a/nara.cabal
+++ b/nara.cabal
@@ -10,12 +10,8 @@ build-type: Simple
extra-source-files: include/uapi.h, cbits/tun.h
cabal-version: >=1.10
description:
- This is a userspace implementation of <https://www.wireguard.io WireGuard> ,
- which is a layer-3 VPN utilizing TUN device and
- <https://github.com/trevp/noise/blob/master/noise.md Noise> protocol.
-
- The configuration tool "wg" from original project is also required, check
- manpage of "wg" for details.
+ nara is a userspace implementation of <https://www.wireguard.io WireGuard> ,
+ a fast, modern and secure VPN based on <https://noiseprotocol.org/ Noise> protocol.
executable nara
main-is: