awesome-repositories.com
Blog
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
uber avatar

uber/NullAway

0
View on GitHub↗
4,064 stars·342 forks·Java·MIT·6 vues

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.

Historique des stars

Graphique de l'historique des stars pour uber/nullawayGraphique de l'historique des stars pour uber/nullaway

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Questions fréquentes

Que fait 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.

Quelles sont les fonctionnalités principales de uber/nullaway ?

Les fonctionnalités principales de uber/nullaway sont : 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.

Quelles sont les alternatives open-source à uber/nullaway ?

Les alternatives open-source à uber/nullaway incluent : 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…

Alternatives open source à NullAway

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec NullAway.
  • checkstyle/checkstyleAvatar de checkstyle

    checkstyle/checkstyle

    8,867Voir sur 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
    Voir sur GitHub↗8,867
  • spotbugs/spotbugsAvatar de spotbugs

    spotbugs/spotbugs

    3,896Voir sur 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
    Voir sur GitHub↗3,896
  • rrrene/credoAvatar de rrrene

    rrrene/credo

    5,193Voir sur 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
    Voir sur GitHub↗5,193
  • pycqa/flake8Avatar de PyCQA

    PyCQA/flake8

    3,760Voir sur 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
    Voir sur GitHub↗3,760
  • Voir les 30 alternatives à NullAway→