{"id":13637268,"url":"https://github.com/DefGuard/wireguard-rs","last_synced_at":"2025-04-19T08:33:57.256Z","repository":{"id":193508046,"uuid":"682504696","full_name":"DefGuard/wireguard-rs","owner":"DefGuard","description":"Rust library providing unified WireGuard interface to native/kernel and userspace implementations","archived":false,"fork":false,"pushed_at":"2024-10-18T16:10:50.000Z","size":288,"stargazers_count":155,"open_issues_count":10,"forks_count":15,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-10-29T22:32:37.133Z","etag":null,"topics":["crate","crates","library","linux","networking","openvpn","rust","rust-lang","vpn","wireguard","wireguard-server","wireguard-vpn"],"latest_commit_sha":null,"homepage":"https://github.com/defguard/defguard/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DefGuard.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-24T10:11:07.000Z","updated_at":"2024-10-29T02:58:35.000Z","dependencies_parsed_at":"2023-09-08T13:56:43.310Z","dependency_job_id":"e4140617-f70a-4a6b-b43d-776b8b0afac7","html_url":"https://github.com/DefGuard/wireguard-rs","commit_stats":null,"previous_names":["defguard/wireguard-rs"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DefGuard%2Fwireguard-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DefGuard%2Fwireguard-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DefGuard%2Fwireguard-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DefGuard%2Fwireguard-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DefGuard","download_url":"https://codeload.github.com/DefGuard/wireguard-rs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223795266,"owners_count":17204137,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["crate","crates","library","linux","networking","openvpn","rust","rust-lang","vpn","wireguard","wireguard-server","wireguard-vpn"],"created_at":"2024-08-02T00:01:14.142Z","updated_at":"2024-11-09T06:31:12.695Z","avatar_url":"https://github.com/DefGuard.png","language":"Rust","readme":" \u003cp align=\"center\"\u003e\n    \u003cimg src=\"docs/header.png\" alt=\"defguard\"\u003e\n \u003c/p\u003e\n\n**defguard_wireguard_rs** is a multi-platform Rust library providing a unified high-level API for managing WireGuard interfaces using native OS kernel and userspace WireGuard protocol implementations.\nIt can be used to create your own [WireGuard:tm:](https://www.wireguard.com/) VPN servers or clients for secure and private networking.\n\nIt was developed as part of [defguard](https://github.com/defguard/defguard) security platform and used in the [gateway/server](https://github.com/defguard/gateway) as well as [desktop client](https://github.com/defguard/client).\n\n## Supported platforms\n\n* **Native OS Kernel**: Linux, FreeBSD (and pfSense/OPNSense), Windows\n* Userspace using [wireguard-go](https://github.com/WireGuard/wireguard-go) - Linux, **macOS**, FreeBSD\n\n### Unique features\n\n* **Peer routing** - see [WGApi](https://docs.rs/defguard_wireguard_rs/latest/defguard_wireguard_rs/struct.WGApi.html) docs.\n* Configuring **DNS resolver** - see [WGApi](https://docs.rs/defguard_wireguard_rs/latest/defguard_wireguard_rs/struct.WGApi.html) docs.\n  * On FreeBSD network interfaces are managed using **ioctl**.\n  * On Linux, handle network routing using **netlink**.\n  * **fwmark** handling\n\n### Windows support\nPlease note that [WireGuard](https://www.wireguard.com/install/) needs to be installed on Windows with commands `wg` and `wireguard` available to be called from the command line.\n\n### Note on `wireguard-go`\nIf you intend to use the userspace WireGuard implementation you should note that currently the library assumes \nthat the `wireguard-go` binary will be available at runtime. There are some sanity checks when instantiating the API, \nbut installing it is outside the scope of this project.\n\n## Examples\n\n* Client: https://github.com/DefGuard/wireguard-rs/blob/main/examples/client.rs\n* Server: https://github.com/DefGuard/wireguard-rs/blob/main/examples/server.rs\n\n## Documentation\n\nSee the [documentation](https://defguard.gitbook.io) for more information.\n\n## Community and Support\n\nFind us on Matrix: [#defguard:teonite.com](https://matrix.to/#/#defguard:teonite.com)\n\n## Contribution\n\nPlease review the [Contributing guide](https://defguard.gitbook.io/defguard/for-developers/contributing) for information on how to get started contributing to the project. You might also find our [environment setup guide](https://defguard.gitbook.io/defguard/for-developers/dev-env-setup) handy.\n\n# Built and sponsored by\n\n\u003cp align=\"center\"\u003e\n      \u003ca href=\"https://teonite.com/services/rust/\" target=\"_blank\"\u003e\u003cimg src=\"https://drive.google.com/uc?export=view\u0026id=1z0fxSsZztoaeVWxHw2MbPbuOHMe3OsqN\" alt=\"build by teonite\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# Legal\nWireGuard® is [registered trademarks](https://www.wireguard.com/trademark-policy/) of Jason A. Donenfeld.\n","funding_links":[],"categories":["Libraries"],"sub_categories":["Network programming"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDefGuard%2Fwireguard-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDefGuard%2Fwireguard-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDefGuard%2Fwireguard-rs/lists"}