github.com/ehang-io/nps
This package has a good security score with no known vulnerabilities.
Community Reviews
Powerful tunneling solution hindered by poor documentation and maintenance gaps
Error messages are often cryptic or entirely in Chinese, making debugging frustrating without language skills or translation tools. When things go wrong with tunneling or connection management, you'll spend considerable time tracing through source code to understand the issue. The package hasn't been updated since April 2021, raising concerns about compatibility with newer Go versions and security patches.
Common use cases like setting up basic tunnels require reading through the CLI implementation to understand how to properly initialize and configure components. The lack of idiomatic Go patterns and minimal community presence on English-speaking forums means you're largely on your own for troubleshooting. Stack Overflow has virtually no coverage, and GitHub issues are predominantly in Chinese.
Best for: Chinese-speaking developers needing a self-hosted reverse proxy solution or teams willing to invest time understanding the codebase.
Avoid if: You need well-documented English libraries, active maintenance, or rely on community support for troubleshooting.
Powerful tunneling tool, but poor library experience and stale maintenance
The codebase lacks meaningful Go package documentation (godoc comments are minimal), and there's no clear separation between internal and public APIs. Type definitions exist but aren't designed with library consumers in mind—you'll find yourself navigating through server initialization code and configuration structs that assume you're running the binary directly. Error messages are often cryptic or untranslated, making debugging frustrating.
The project hasn't seen updates since April 2021, which is concerning for security-sensitive tunneling software. If you need an NPS tunnel in your Go application, you're better off spawning the binary as a subprocess rather than importing this package. For programmatic proxy/tunnel solutions in Go, consider purpose-built libraries instead.
Best for: Running NPS as a standalone binary through system calls or process management, not as an embedded library.
Avoid if: You need a well-documented Go library for embedding proxy/tunnel functionality directly in your application.
Powerful tunneling tool with concerning security practices and maintenance
Input validation is inconsistent across different protocol handlers, and error messages frequently leak internal path information and configuration details. The authentication layer is basic, using simple password-based auth without modern standards like token rotation or rate limiting. Client configuration requires storing credentials in plaintext files by default.
Most concerning is the lack of maintenance since April 2021. No CVE responses, no dependency updates, and multiple known vulnerabilities in transitive dependencies remain unpatched. The project feels abandoned despite being functional for basic tunneling needs. If you must use it, deploy behind strict network controls and never expose directly to the internet.
Best for: Internal development environments where you need quick protocol tunneling and security is managed at the network perimeter.
Avoid if: You need a production-grade solution, handle sensitive data, or require actively maintained software with CVE response processes.
Sign in to write a review
Sign In