Atmosphere is the production-proven framework for building real-time Java applications. WebSocket with automatic fallback to SSE, Long-Polling, HTTP Streaming, and JSONP -- write your handler once, Atmosphere negotiates the best transport.
New in 3.1: first-class Spring Boot 4 and Quarkus 3 starters with zero-configuration setup, CDI/Spring DI bridges, and build-time annotation scanning.
| Stack | Artifact | Min version |
|---|---|---|
| Spring Boot | atmosphere-spring-boot-starter |
Spring Boot 4.0.2+ |
| Quarkus | atmosphere-quarkus-extension |
Quarkus 3.21+ |
| Any Servlet container | atmosphere-runtime |
Servlet 3.0+ |
A real-time chat handler in 15 lines -- works identically on Spring Boot, Quarkus, or bare Servlet:
@ManagedService(path = "/chat")
public class Chat {
@Inject private BroadcasterFactory factory;
@Inject private AtmosphereResource r;
@Ready
public void onReady() {
// client connected
}
@Message(encoders = JacksonEncoder.class, decoders = JacksonDecoder.class)
public Message onMessage(Message message) {
return message; // broadcast to all
}
}The atmosphere-spring-boot-starter provides zero-configuration integration with Spring Boot 4.0.2+, including auto-configured servlet, Spring DI bridge, and optional Actuator health indicator.
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-spring-boot-starter</artifactId>
<version>3.1.0</version>
</dependency>Configure via application.yml:
atmosphere:
packages: com.example.chatAll Spring Boot configuration properties
| Property | Default | Description |
|---|---|---|
servlet-path |
/atmosphere/* |
Servlet URL mapping |
packages |
Annotation scanning packages | |
order |
0 |
Servlet load-on-startup order |
session-support |
false |
Enable HttpSession support |
websocket-support |
Enable/disable WebSocket | |
heartbeat-interval-in-seconds |
Server heartbeat frequency | |
broadcaster-class |
Custom Broadcaster FQCN | |
broadcaster-cache-class |
Custom BroadcasterCache FQCN | |
init-params |
Map of any ApplicationConfig key/value |
The atmosphere-quarkus-extension brings Atmosphere to Quarkus 3.21+ with build-time annotation scanning via Jandex, Arc CDI integration, and native image support.
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-quarkus-extension</artifactId>
<version>3.1.0</version>
</dependency>Configure via application.properties:
quarkus.atmosphere.packages=com.example.chatAll Quarkus configuration properties
| Property | Default | Description |
|---|---|---|
quarkus.atmosphere.servlet-path |
/atmosphere/* |
Servlet URL mapping |
quarkus.atmosphere.packages |
Annotation scanning packages | |
quarkus.atmosphere.load-on-startup |
1 |
Servlet load-on-startup order |
quarkus.atmosphere.session-support |
false |
Enable HttpSession support |
quarkus.atmosphere.broadcaster-class |
Custom Broadcaster FQCN | |
quarkus.atmosphere.broadcaster-cache-class |
Custom BroadcasterCache FQCN | |
quarkus.atmosphere.heartbeat-interval-in-seconds |
Server heartbeat frequency | |
quarkus.atmosphere.init-params |
Map of any ApplicationConfig key/value |
For Tomcat, Jetty, Undertow, or any Servlet 3.0+ container:
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-runtime</artifactId>
<version>3.1.0</version>
</dependency><dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-runtime</artifactId>
<version>2.7.15</version>
</dependency>Modules: runtime, jersey, spring, kafka, guice, redis, hazelcast, jms, rabbitmq, jgroups, and more on Maven Central.
| Branch | Java | Spring Boot | Quarkus |
|---|---|---|---|
| 3.1.x (main) | 17+ | 4.0.2+ | 3.21+ |
| 2.7.x | 8 -- 25 | -- | -- |
- Samples -- Spring Boot chat, Quarkus chat, and many more
- Wiki & Tutorials
- FAQ
- Javadoc
- atmosphere.js API
- DeepWiki -- AI-powered code exploration
- JavaScript: atmosphere.js (included in samples)
- Java/Scala/Android: wAsync
Available via Async-IO.org
| Stack | Project |
|---|---|
| Netty | Nettosphere |
| Play | atmosphere-play |
| Vert.x | atmosphere-vertx |
Extensions: Apache Kafka, Hazelcast, RabbitMQ, Redis and more.
@Copyright 2008-2026 Async-IO.org