Retrofit 3.0.0 turns interfaces into HTTP clients
Retrofit 3.0.0 takes a Java or Kotlin interface and generates its implementation. An annotation such as @GET supplies the HTTP method and relative path, while @Path, @Query, @Header, and @Body map method arguments into a request. The result can be an ordinary Call, a Java future, an RxJava type, or a Kotlin suspend function. That structure keeps endpoint declarations compact and lets the rest of an application depend on an interface that is easy to fake in tests.
The library delegates transport to OkHttp and body handling to converter modules. Official choices cover Gson, Jackson, Moshi, Protobuf, Wire, JAXB, Kotlin serialization, scalars, and several optional types. Without a converter, Retrofit only accepts OkHttp's RequestBody and returns ResponseBody. That default is deliberately narrow. Choosing a serializer, its error policy, and the exact handling of empty or malformed bodies remains application work.
A 57-second install reached the Android build boundary
Our fresh container installed commit d3a0eeb in 57 seconds. The checkout had 1,109 files, about 42,459 lines of source, and occupied 6.7 MB. The repository is modest beside many Android toolchains, and dependency resolution completed without secrets. Our scan found two CI workflow files, no Dockerfile, and no tests directory. The Gradle project still includes an android-test module, which is where the build reached its platform requirement.
Consuming Retrofit from Maven Central is simpler than compiling every module. The README gives com.squareup.retrofit2:retrofit:3.0.0 and requires Java 8+ or Android API 21+. A client needs a base URL and usually a converter. R8 rules are bundled automatically, while ProGuard users must add Retrofit's rules and may need OkHttp rules too. There is no Retrofit account, server, or API key to operate.
What happened when we ran it
Our run completed installation in 57 seconds, then the build failed after 13 seconds. Gradle could not determine dependencies for :retrofit:android-test:extractDebugAnnotations because it could not find an Android SDK. The error gave two remedies: set ANDROID_HOME or add sdk.dir to /work/repo/local.properties. The sandbox used 3 CPUs, 10 GB of RAM, JVM 21, no secrets, and no elevated privileges.
The test command failed after 14 seconds for the same missing SDK location, before a test result was produced. Its log ended with BUILD FAILED in 11s; the supplied run summary records exit 1 for the 14-second test step. We have no passing or failing case count to report. This result says a JDK alone cannot exercise the repository's configured checks. It does not say the published Retrofit artifact fails at runtime.
Both logs also warned that deprecated Gradle features will be incompatible with Gradle 10. The excerpt does not identify the feature or whether it comes from Retrofit's scripts or a plugin, so assigning blame would be guesswork. A contributor evaluating the trunk branch should rerun with an Android SDK and --warning-mode all. That separates the immediate environment failure from work needed before a future Gradle upgrade.
Version 3.0.0 adds Kotlin while keeping a 2.x bridge
Retrofit 3.0.0 upgraded its transport dependency from OkHttp 3.14 to 4.12. Because OkHttp 4.12 is written in Kotlin, a Retrofit application now receives Kotlin as a transitive dependency. Java-only teams should account for that classpath change even if their service interfaces remain Java. The release notes explain the trade: OkHttp 3.14 had been unsupported for nearly four years, while 4.12 was the supported line.
The same release states that Retrofit 3.x keeps forward binary compatibility with 2.x. Libraries compiled against Retrofit 2.x can therefore be used with 3.x according to the maintainers. That is useful for applications upgrading before every dependency republishes. It does not remove normal upgrade checks around dependency resolution, shrinker output, converter behavior, or Kotlin version alignment. Open issue 4381, for example, reports a Kotlin compatibility problem in one Spring Boot configuration.
A September 29 push outweighs the older release tag
GitHub showed 43,943 stars and 152 open issues and pull requests on September 30, 2026. The latest release, 3.0.0, dates to May 15, 2025, but the repository was pushed on September 29, 2026. Issues and pull requests were also updated that day. The unreleased changelog lists new keep rules, a QUERY method, an annotation URL accessor, and a new snapshot repository, so the old tag is not evidence that work stopped.
Retrofit remains an easy recommendation for Android and JVM teams that like declarative clients. Its annotations are readable, its converter and adapter choices cover common stacks, and 3.0.0 gives 2.x libraries a stated binary bridge. Our source checkout also exposed a requirement the short dependency snippet cannot show: the repository's build expects an Android SDK even in a JVM 21 container. Install the artifact for application work; provision the full Android toolchain before contributing or judging trunk health.

