Ross ROSS = Recommend OSS · open-source software intelligence for agents

jspecify/jspecify

An artifact of fully-specified annotations to power static-analysis checks, beginning with nullness analysis. observed · 2026-09-03

github.com/jspecify/jspecify · homepage · Java · Apache-2.0 (permissive) observed · 2026-09-03

Health v2 · maintenance only

87/100

  • Activity 100
  • Release rhythm 63
  • Longevity 100
How is this computed?

round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-03. Adoption (stars, forks) is never an input.

  • gap_med: n/a
  • age_days: 2907
  • days_rel: 35
  • days_push: 1
  • n_releases_24m: 1

Full methodology

Adoption not part of the score

1137 stars · 43 forks observed · 2026-09-03

What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-30, confidence not recorded

JSpecify is a standard, tool-neutral set of Java annotations with precisely specified semantics for powering static analysis, currently focused on nullness analysis. It is developed by consensus of major JVM stakeholders (Google, JetBrains, Oracle, Sonar, and others) so library owners can annotate once and support many analysis tools.

Use cases

  • annotate Java APIs with nullability so tools can catch NullPointerExceptions
  • standardize nullness annotations across libraries instead of picking one tool's annotations
  • make Kotlin and Java interop nullness-safe on the JVM
  • build static analysis or bug-finding tools against a shared nullness spec
  • document whether a type usage can be null in a machine-readable way

When to choose

  • you maintain a Java/JVM library and want tool-independent nullness annotations
  • you want consistent nullness semantics across Error Prone, NullAway, IntelliJ, Sonar, and Kotlin
  • you are building a static analysis tool for JVM languages and want a standard to implement

When to avoid

  • you need annotations for kinds of static analysis beyond nullness, which JSpecify does not yet cover
  • your toolchain only supports a single vendor's annotation set and you cannot adopt new dependencies
  • you work outside the JVM ecosystem

Facets

library · maturity stable

type-system developer-tools programming-languages developer-tools jvm nullness-analysis static-analysis annotations jvm-languages tool-neutral android

7 sources

Member repositories

RepositoryRoleHealth v2
jspecify/jspecifymain87

For agents

markdown · JSON · MCP: product_card(name="jspecify/jspecify")

Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem