awesome-repositories.com
Blog
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
uber avatar

uber/NullAway

0
View on GitHub↗
4,064 estrellas·342 forks·Java·MIT·6 vistas

NullAway

NullAway is a Java static analysis tool and build-time detector designed to identify null pointer risks. It functions as a nullability checker that uses annotations to verify that references are not null before they are dereferenced, preventing runtime crashes.

The analyzer implements the JSpecify standard to ensure consistent nullability annotations across different Java libraries. It distinguishes itself through the use of a service provider interface to model the nullability behavior of third-party libraries that lack source annotations and by providing specialized support for Lombok-generated code.

The tool covers a broad range of safety enforcement capabilities, including Java API contract validation for method overrides and the detection of empty optional value retrieval. Its analysis surface extends to package-level nullability marking and the ability to exclude generated source code from analysis.

Features

  • Null Safety Enforcement - Provides compile-time analysis to detect null pointer risks and enforce null safety across Java codebases.
  • Nullability Standard Implementations - Implements the JSpecify standard to ensure consistent nullability annotations across different Java libraries.
  • Nullability Checkers - Functions as a nullability checker that uses annotations to verify references are not null before dereferencing.
  • Java Static Analysis Tools - Serves as a full static analysis tool for Java source code to enforce null safety rules.
  • Build-Time Null Check Verification - Provides a compiler-integrated check that identifies null pointer risks in Java projects during the build phase.
  • Nullability Annotations - Provides a standardized set of nullability annotations to ensure consistent interpretation across static analysis tools.
  • Syntax Tree Analysis - Analyzes the program's abstract syntax tree to track nullability states across variables and method calls.
  • Null Pointer Exception Detection - Performs local type-based checks using annotations to ensure dereferenced pointers are not null.
  • Static Code Analysis - Integrates automated null checks into the build process to detect potential crashes before deployment.
  • Method Contract Verification - Ensures that overriding methods maintain consistent nullability contracts with their super-type methods.
  • Static Contract Analysis - Performs compile-time verification of behavioral contracts to reason about method nullability.
  • Third Party Library Typing - Provides a way to define nullability behavior for external libraries that lack native annotations.
  • Lombok AST Integration - Recognizes common Lombok annotations to maintain compatibility with in-memory modifications of the abstract syntax tree.
  • Nullability Contract Linting - Verifies that method overrides and library calls maintain consistent nullability rules to prevent runtime crashes.
  • Behavioral Contract Validation - Evaluates behavioral contract annotations to reason about method side effects and return values.
  • Compiler-Integrated Analysis - Integrates directly into the Java compilation process to perform analysis with minimal impact on build speed.
  • Pluggable Service Provider Interfaces - Uses a pluggable service provider interface to model nullability for third-party libraries lacking source annotations.
  • Optional Value Validations - Detects calls to retrieve values from empty optionals unless a presence check is performed first.
  • Package-Level Nullability Marking - Applies nullability rules to entire packages to avoid requiring annotations on every individual class.
  • Standardized Nullability Analyzers - Provides an analysis engine that supports the JSpecify standard for consistent nullability across Java libraries.
  • Code Analysis - Build-time tool to eliminate NullPointerExceptions.
  • Static Analysis Tools - Type-based null-pointer checker for Java.

Historial de estrellas

Gráfico del historial de estrellas de uber/nullawayGráfico del historial de estrellas de uber/nullaway

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Alternativas open-source a NullAway

Proyectos open-source similares, clasificados según cuántas características comparten con NullAway.
  • checkstyle/checkstyleAvatar de checkstyle

    checkstyle/checkstyle

    8,867Ver en GitHub↗

    Checkstyle is a Java static analysis tool and linter designed to identify and enforce coding standards and best practices. It functions as a code quality auditor and Javadoc validation tool, checking source code against configurable rulesets to ensure structural and stylistic consistency. The project allows for the creation of custom linting rules by extending a core API to inspect the abstract syntax tree. It further enables specialized validation through the use of XPath expressions to query the syntax tree for specific code patterns and violations. Capability areas include the enforcement

    Javacode-qualitycommand-line-toolhacktoberfest
    Ver en GitHub↗8,867
  • spotbugs/spotbugsAvatar de spotbugs

    spotbugs/spotbugs

    3,896Ver en GitHub↗

    SpotBugs is a static analysis tool and bytecode analyzer for Java applications. It scans compiled class files to identify bugs, security vulnerabilities, and performance issues without executing the code. The system functions as both a bug detector and a static application security testing tool to locate logical errors and API misuse. The project distinguishes itself through a plugin-based detector architecture that allows the integration of external libraries to add custom detection rules. It provides specialized security auditing for vulnerabilities such as SQL injection, cross-site scripti

    Java
    Ver en GitHub↗3,896
  • rrrene/credoAvatar de rrrene

    rrrene/credo

    5,193Ver en GitHub↗

    Credo is a static analysis tool and linter for Elixir. It functions as a code quality analyzer that scans source code to identify stylistic inconsistencies, common mistakes, and potential security vulnerabilities. The tool provides a customizable framework for defining and testing specialized rules to enforce project-specific coding standards. It identifies complex code fragments and duplication to highlight opportunities for refactoring and simplification. Its capabilities cover automated code reviews, the enforcement of Elixir coding standards, and real-time developer feedback through edit

    Elixir
    Ver en GitHub↗5,193
  • pycqa/flake8Avatar de PyCQA

    PyCQA/flake8

    3,760Ver en GitHub↗

    Flake8 is a Python style checker and static analysis tool that identifies programmatic errors and violations of coding standards in source files. It serves as a linting wrapper that aggregates multiple checkers into a single interface, functioning as a pluggable framework for Python code analysis. The tool incorporates a cyclomatic complexity analyzer to measure the logical complexity of functions and identify code that requires refactoring. It is designed for extensibility, allowing the integration of custom plugins and rules through defined entry points. The system provides capabilities fo

    Pythoncomplexity-analysisflake8linter
    Ver en GitHub↗3,760
Ver las 30 alternativas a NullAway→

Preguntas frecuentes

¿Qué hace uber/nullaway?

NullAway is a Java static analysis tool and build-time detector designed to identify null pointer risks. It functions as a nullability checker that uses annotations to verify that references are not null before they are dereferenced, preventing runtime crashes.

¿Cuáles son las características principales de uber/nullaway?

Las características principales de uber/nullaway son: Null Safety Enforcement, Nullability Standard Implementations, Nullability Checkers, Java Static Analysis Tools, Build-Time Null Check Verification, Nullability Annotations, Syntax Tree Analysis, Null Pointer Exception Detection.

¿Qué alternativas de código abierto existen para uber/nullaway?

Las alternativas de código abierto para uber/nullaway incluyen: checkstyle/checkstyle — Checkstyle is a Java static analysis tool and linter designed to identify and enforce coding standards and best… spotbugs/spotbugs — SpotBugs is a static analysis tool and bytecode analyzer for Java applications. It scans compiled class files to… rrrene/credo — Credo is a static analysis tool and linter for Elixir. It functions as a code quality analyzer that scans source code… pycqa/flake8 — Flake8 is a Python style checker and static analysis tool that identifies programmatic errors and violations of coding… golang/lint — This is a static analysis linter and code quality tool for Go. It analyzes source code to identify common coding… troessner/reek — Reek is a static code analyzer for Ruby projects designed to identify design flaws and maintainability issues known as…