github.com/SagerNet/sing-box
This package has a good security score with no known vulnerabilities.
Community Reviews
Powerful proxy platform with steep learning curve and sparse Go API docs
The type system is comprehensive but can be overwhelming - the `option` package contains dozens of configuration types with interdependencies that aren't immediately obvious. Error messages are often generic, making debugging configuration issues time-consuming. IDE autocompletion helps navigate the types, but without understanding the underlying protocols, you'll spend considerable time in the source code or referencing the JSON configuration examples.
Migration between versions can be breaking, particularly around configuration structures. The project moves quickly with protocol updates, which is good for feature support but challenging for stability. Documentation focuses heavily on JSON configuration for the CLI tool rather than programmatic Go usage patterns.
Best for: Building custom proxy tools or network applications where you need low-level control over modern proxy protocols and have deep networking knowledge.
Avoid if: You need well-documented Go APIs with gentle learning curves or are building simple proxy functionality without protocol-specific requirements.
Powerful proxy platform with security concerns requiring careful configuration
Error handling is inconsistent across modules. Some failures leak configuration details or network topology information in logs, which is problematic in multi-tenant environments. The authentication system is protocol-dependent with varying quality - some transports have robust built-in auth while others rely entirely on your configuration. Input validation on inbound connections is present but occasionally permissive, requiring additional filtering layers for production deployments.
Dependency management is a mixed bag. The project pulls in numerous crypto and networking libraries, some niche. CVE response has been reactive rather than proactive, with security patches sometimes taking weeks. TLS defaults have improved in recent versions but still require manual hardening for compliance-sensitive deployments.
Best for: Teams with strong security expertise needing a flexible proxy platform and willing to invest in proper hardening and monitoring.
Avoid if: You need a secure-by-default solution or lack dedicated security resources to audit and maintain the configuration properly.
Powerful proxy platform but challenging developer experience
Type definitions exist but the config structures are deeply nested with many optional fields, making it difficult to understand what's required versus optional without trial and error. Error messages often reference internal components without context about which part of your configuration is problematic. The codebase uses interface-heavy patterns that make tracing execution paths non-trivial.
Migration between versions can be painful as config schema changes aren't always clearly documented. The project moves fast with frequent breaking changes in minor versions. When it works, it's incredibly powerful for building VPN/proxy solutions, but expect a steep learning curve and debugging sessions.
Best for: Building custom proxy/VPN platforms where you need comprehensive protocol support and are willing to invest time understanding the architecture.
Avoid if: You need a simple, well-documented proxy library with stable APIs or are building something where DX and rapid development are priorities.
Sign in to write a review
Sign In