Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Java
  3. Riptide

Riptide

MITJava5.0.0

A next-generation HTTP client for Spring that implements client-side response routing, embracing HTTP's full power.

GitHubGitHub
339 stars77 forks0 contributors

What is Riptide?

Riptide is a next-generation HTTP client library for Spring that implements client-side response routing. It allows Java developers to fully leverage HTTP's capabilities by dispatching responses to different callbacks based on status codes, content types, or other conditions, rather than forcing a single-return paradigm. The library provides built-in resilience features, asynchronous communication, and a type-safe API.

Target Audience

Java developers building Spring-based applications who need robust, flexible HTTP client capabilities with fine-grained control over response handling and resilience patterns.

Value Proposition

Developers choose Riptide because it doesn't abstract HTTP away but embraces it, offering unique response routing, built-in resilience, and a plugin-based extensibility model that integrates seamlessly with Spring's ecosystem.

Overview

Client-side response routing for Spring

Use Cases

Best For

  • Handling multiple distinct happy-case responses in HTTP APIs
  • Implementing resilient HTTP clients with retries and circuit breakers
  • Building asynchronous, non-blocking HTTP communication in Spring apps
  • Dispatching responses based on status codes or content types
  • Integrating custom plugins for authorization, metrics, or fault detection
  • Replacing Feign or Retrofit with a more HTTP-aware client

Not Ideal For

  • Projects requiring simple, declarative HTTP clients without complex callback routing
  • Teams using non-Spring frameworks or older Java versions (pre-Java 17)
  • Applications prioritizing minimal configuration and quick setup over advanced HTTP control

Pros & Cons

Pros

Response Routing Flexibility

Enables dispatching responses to different callbacks based on status codes, series, or content types, allowing multiple happy-case handling as demonstrated in the example with SUCCESSFUL and CLIENT_ERROR series.

Built-in Resilience

Includes isolated thread pools, connection pools, bounded queues, and integrations for retries, circuit breakers, and fault detection via modules like riptide-failsafe and riptide-faults.

Asynchronous by Default

Returns CompletableFuture for non-blocking IO, with optional synchronous return values through riptide-capture, promoting scalable application design.

Plugin Extensibility

Offers a plugin system for adding custom functionality like authorization, metrics, and transient fault detection, as seen with plugins such as AuthorizationPlugin and MicrometerPlugin.

Cons

Configuration Complexity

Requires manual setup of executors, request factories, and plugins, with even the bare minimum configuration needing explicit thread pool management, increasing initial overhead.

Breaking Changes

Frequent major version upgrades (e.g., from 4.x to 5.x) come with migration guides for breaking changes, which can disrupt existing implementations and require significant updates.

Spring Ecosystem Dependency

Tightly coupled with Spring framework versions, necessitating Java 17 and Spring 7, limiting flexibility for projects outside this ecosystem or with legacy dependencies.

Open Source Alternative To

Riptide is an open-source alternative to the following products:

R
Retrofit

Retrofit is a type-safe HTTP client for Android and Java that turns your HTTP API into a Java interface using annotations.

F
Feign

Feign is a Java HTTP client binder that simplifies making web service requests by allowing developers to declaratively define REST clients with annotations.

Frequently Asked Questions

Quick Stats

Stars339
Forks77
Contributors0
Open Issues6
Last commit1 day ago
CreatedSince 2015

Tags

#spring#rest-client#spring-framework#java-library#json-stream#http#async#plugin-extension#java#asynchronous#fault-tolerance#resilience#spring-boot-starter#non-blocking-io#client-side#spring-web#http-client#routing

Built With

S
Spring
J
Java
O
OkHttp

Included in

Java47.5k
Auto-fetched 1 day ago

Related Projects

FeignFeign

Feign makes writing java http clients easier

Stars9,784
Forks1,941
Last commit2 days ago
Async Http ClientAsync Http Client

High-Performance Asynchronous HTTP and WebSocket Client Library for Java

Stars6,392
Forks1,594
Last commit2 days ago
ribbonribbon

Ribbon is a Inter Process Communication (remote procedure calls) library with built in software load balancers. The primary usage model involves REST calls with various serialization scheme support.

Stars4,613
Forks1,227
Last commit6 months ago
unirest-javaunirest-java

Unirest in Java: Simplified, lightweight HTTP client library.

Stars2,701
Forks590
Last commit1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub