{"repo":"uber-go/nilaway","free":true,"listed":false,"github":"https://github.com/uber-go/nilaway","clone":"git clone https://github.com/uber-go/nilaway.git","description":"Static analysis tool to detect potential nil panics in Go code","language":"Go","stars":3896,"topics":["go","static-analysis","nilability","nilability-analysis","nil-pointer"],"license":"Apache-2.0","category":"dev-tools","readme_excerpt":"NilAway [![GoDoc][doc-img]][doc] [![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] [!WARNING] NilAway is currently under active development: false positives and breaking changes can happen. We highly appreciate any feedback and contributions! NilAway is a static analysis tool that seeks to help developers avoid nil panics in production by catching them at compile time rather than runtime. NilAway is similar to the standard nilness analyzer, however, it employs much more sophisticated and powerful static analysis techniques to track nil flows within a package as well across packages, and report errors providing users with the nilness flows for easier debugging. NilAway enjoys three key properties that make it stand out: - It is fully-automated : NilAway is equipped with an inference engine, making it require no additional information from the developers (e.g., annotations) besides standard Go code. - It is fast : we have designed NilAway to be fast and scalable, making it suitable for large codebases. In our measurements, we have observed less than 5% build-time overhead when NilAway is enabled. We are also constantly applying optimizations to further reduce its footprint. - It is practical : it does not prevent all possible nil panics in your code, but it catches most of the potential nil panics we have observed in production, allowing NilAway to maintain a good balance between usefulness and build-time overhead. :star2: For more detailed technical discussion, ","default_branch":null,"files":null,"tree":[],"storefront":"/r/uber-go","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/uber-go/nilaway/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}