{"id":31100951,"url":"https://github.com/ezh/wireguard-grpc","last_synced_at":"2026-05-09T05:33:54.630Z","repository":{"id":45519010,"uuid":"494805186","full_name":"ezh/wireguard-grpc","owner":"ezh","description":"GRPC wrapper for Wireguard. You may use it as standalone application or embedded library.","archived":false,"fork":false,"pushed_at":"2023-03-06T19:06:29.000Z","size":231,"stargazers_count":3,"open_issues_count":9,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-16T23:51:43.053Z","etag":null,"topics":["grpc","grpc-go","wireguard"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ezh.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2022-05-21T14:23:55.000Z","updated_at":"2024-11-06T07:59:53.000Z","dependencies_parsed_at":"2024-06-19T19:15:20.219Z","dependency_job_id":null,"html_url":"https://github.com/ezh/wireguard-grpc","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/ezh/wireguard-grpc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezh%2Fwireguard-grpc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezh%2Fwireguard-grpc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezh%2Fwireguard-grpc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezh%2Fwireguard-grpc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ezh","download_url":"https://codeload.github.com/ezh/wireguard-grpc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezh%2Fwireguard-grpc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32808501,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"online","status_checked_at":"2026-05-09T02:00:06.633Z","response_time":123,"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":["grpc","grpc-go","wireguard"],"created_at":"2025-09-16T23:03:57.143Z","updated_at":"2026-05-09T05:33:54.622Z","avatar_url":"https://github.com/ezh.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://github.com/ezh/wireguard-grpc/actions/workflows/go.yml/badge.svg)](https://github.com/ezh/wireguard-grpc/actions?query=workflow%3Ago)\n[![Go Report Card](https://goreportcard.com/badge/github.com/ezh/wireguard-grpc)](https://goreportcard.com/report/github.com/ezh/wireguard-grpc)\n[![codecov](https://codecov.io/gh/ezh/wireguard-grpc/branch/main/graph/badge.svg)](https://codecov.io/gh/ezh/wireguard-grpc)\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fezh%2Fwireguard-grpc.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fezh%2Fwireguard-grpc?ref=badge_shield)\n[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org)\n\nIt is a secure implementation. Exposing private keys through a network is prohibited explicitly.\n\nAs a standalone application, it implements the following commands:\n* diag: Test wireguard-grpc configuration.\n* env: Prints environment variables.\n* server: Run GRPC server. It provides the next API:\n  - Ping: returns empty result if configuration is valid\n  - Dump: returns a list of devices with all endpoints\n* version: Prints the program’s version information.\n\nAs an embedded library:\n* it can be seamlessly integrated with any logging implementation supported by [logr](https://github.com/go-logr/logr), like:\n  - **a function** (can bridge to non-structured libraries): [funcr](https://github.com/go-logr/logr/tree/master/funcr)\n  - **a testing.T** (for use in Go tests, with JSON-like output): [testr](https://github.com/go-logr/logr/tree/master/testr)\n  - **github.com/google/glog**: [glogr](https://github.com/go-logr/glogr)\n  - **k8s.io/klog** (for Kubernetes): [klogr](https://git.k8s.io/klog/klogr)\n  - **a testing.T** (with klog-like text output): [ktesting](https://git.k8s.io/klog/ktesting)\n  - **go.uber.org/zap**: [zapr](https://github.com/go-logr/zapr)\n  - **log** (the Go standard library logger): [stdr](https://github.com/go-logr/stdr)\n  - **github.com/sirupsen/logrus**: [logrusr](https://github.com/bombsimon/logrusr)\n  - **github.com/wojas/genericr**: [genericr](https://github.com/wojas/genericr) (makes it easy to implement your own backend)\n  - **logfmt** (Heroku style [logging](https://www.brandur.org/logfmt)): [logfmtr](https://github.com/iand/logfmtr)\n  - **github.com/rs/zerolog**: [zerologr](https://github.com/go-logr/zerologr)\n  - **github.com/go-kit/log**: [gokitlogr](https://github.com/tonglil/gokitlogr) (also compatible with github.com/go-kit/kit/log since v0.12.0)\n  - **bytes.Buffer** (writing to a buffer): [bufrlogr](https://github.com/tonglil/buflogr) (useful for ensuring values were logged, like during testing)\n  - more?\n* it provides mock for [api/wireguard/v1/WireGuardServiceClient](api/wireguard/v1/wireguard_service.proto)\n\n\n# Quick start\n\n`wireguard-grpc server`\n\n# Generate\n\n`go generate -v`\n\n# Test\n\n## Unit tests\n\n`ginkgo ./...`\n\n## Integration tests\n\n`ginkgo -tags=integration -v test/...`\n\n# Build\n\n`go build cmd/main.go`\n\n## License\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fezh%2Fwireguard-grpc.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fezh%2Fwireguard-grpc?ref=badge_large)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fezh%2Fwireguard-grpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fezh%2Fwireguard-grpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fezh%2Fwireguard-grpc/lists"}