{"id":32551301,"url":"https://github.com/axman6/wireguard-hs","last_synced_at":"2026-05-14T13:35:38.994Z","repository":{"id":55106623,"uuid":"328278403","full_name":"axman6/wireguard-hs","owner":"axman6","description":"A mirror and (hopefully) modernisation of https://git.zx2c4.com/wireguard-hs/about/","archived":false,"fork":false,"pushed_at":"2021-01-10T10:44:09.000Z","size":80,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-28T21:02:00.055Z","etag":null,"topics":["haskell","protocol","vpn","wireguard"],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/axman6.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-01-10T01:11:59.000Z","updated_at":"2021-01-10T05:43:06.000Z","dependencies_parsed_at":"2022-08-14T12:10:32.804Z","dependency_job_id":null,"html_url":"https://github.com/axman6/wireguard-hs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/axman6/wireguard-hs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axman6%2Fwireguard-hs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axman6%2Fwireguard-hs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axman6%2Fwireguard-hs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axman6%2Fwireguard-hs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/axman6","download_url":"https://codeload.github.com/axman6/wireguard-hs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axman6%2Fwireguard-hs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33027063,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["haskell","protocol","vpn","wireguard"],"created_at":"2025-10-28T20:59:46.068Z","updated_at":"2026-05-14T13:35:38.910Z","avatar_url":"https://github.com/axman6.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Travis Status](https://travis-ci.org/NinjaTrappeur/wireguard-hs.svg?branch=RPC-Refactoring)](https://travis-ci.org/NinjaTrappeur/wireguard-hs)\n### Do not use this Haskell code.\n\nThis is not a complete implementation of WireGuard. If you're interested in using WireGuard, use the implementation for Linux [found here](https://git.zx2c4.com/WireGuard/) and described on the [main wireguard website](https://www.wireguard.io/). There is no group of users that should be using the code in this repository here under any circumstances at the moment, not even beta testers or dare devils. It simply isn't complete. However, if you're interested in assisting with the Haskell development of WireGuard and contributing to this repository, by all means dig in and help out. But users: stay far away, at least for now.\n\n-----\n\n**nara** is a userspace implementation of [WireGuard](https://www.wireguard.io),\na fast, modern and secure VPN based on [Noise](https://noiseprotocol.org/) protocol.\n\n### Build\n\nOnly Linux and macOS are supported at this moment.\n\nTo build **nara**, download and install [haskell-stack](https://www.haskellstack.org) first.\n~~~\n$ stack setup   # This will download and install GHC in a sandboxed environment,\n                # optional if stack has been configured to use global GHC.\n$ stack install\n~~~\n\n### Usage\n\nThe following command will create a TUN device named `wg0` and then daemonize\nto background. On macOS, the device name has to be like `utun1` or `utun2`.\nRoot privilege is also required.\n~~~\n# nara wg0\n~~~\n\nAfter that, use the usual `wg` tool to configure the device. For most\ndistributions it's in the `wireguard-tools` package. Check the manpage\nof `wg` for details.\n\n### Status\n\nCurrently this is just a prototype, and there are still a lot to be done.\n\n- [ ] Documents and test coverage\n- [ ] Receiver-side nonce deduplicate\n- [ ] Logging and better exceptions handling\n- [ ] Cookie support to prevent DDOS attack\n- [ ] Full IPv6 support\n- [ ] An accurate timer based approach to manage lifetimes\n- [ ] Send ICMP packets back in case of unreachable hosts\n- [ ] Persistent-keepalive\n- [ ] Per-host packet queue\n- [ ] Benchmark, and performance optimization\n- [ ] FreeBSD support (perhaps Windows support as well)\n- [ ] MTU discovery and setting\n\n### License\n\nThis software is licensed in GPLv3+.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxman6%2Fwireguard-hs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faxman6%2Fwireguard-hs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxman6%2Fwireguard-hs/lists"}