Reactor Netty offers non-blocking and backpressure-ready TCP/HTTP/UDP/QUIC
clients & servers based on Netty framework.
Reactor Netty requires Java 8 or + to run.
With Gradle from repo.spring.io or Maven Central repositories (stable releases only):
repositories {
//maven { url 'https://repo.spring.io/snapshot' }
mavenCentral()
}
dependencies {
//compile "io.projectreactor.netty:reactor-netty-core:1.3.0-SNAPSHOT"
compile "io.projectreactor.netty:reactor-netty-core:1.3.0-RC1"
//compile "io.projectreactor.netty:reactor-netty-http:1.3.0-SNAPSHOT"
compile "io.projectreactor.netty:reactor-netty-http:1.3.0-RC1"
}See the Reference documentation
for more information on getting it (eg. using Maven, or on how to get milestones and snapshots).
New to Reactor Netty? Check this Reactor Netty Workshop
and the Reference documentation
Here is a very simple HTTP server and the corresponding HTTP client example
HttpServer.create() // Prepares an HTTP server ready for configuration
.port(0) // Configures the port number as zero, this will let the system pick up
// an ephemeral port when binding the server
.route(routes ->
// The server will respond only on POST requests
// where the path starts with /test and then there is path parameter
routes.post("/test/{param}", (request, response) ->
response.sendString(request.receive()
.asString()
.map(s -> s + ' ' + request.param("param") + '!')
.log("http-server"))))
.bindNow(); // Starts the server in a blocking fashion, and waits for it to finish its initializationHttpClient.create() // Prepares an HTTP client ready for configuration
.port(server.port()) // Obtains the server's port and provides it as a port to which this
// client should connect
.post() // Specifies that POST method will be used
.uri("/test/World") // Specifies the path
.send(ByteBufFlux.fromString(Flux.just("Hello"))) // Sends the request body
.responseContent() // Receives the response body
.aggregate()
.asString()
.log("http-client")
.block();Having trouble with Reactor Netty? We'd like to help!
- If you are upgrading, read the release notes for upgrade instructions and new and noteworthy features.
- Ask a question - we monitor stackoverflow.com for questions
tagged with
reactor-netty. You can also chat with the community on Gitter. - Report bugs with
Reactor Nettyat github.com/reactor/reactor-netty/issues. - More about Support and Deprecation policies
Reactor Netty uses GitHub’s integrated issue tracking system to record bugs and feature requests.
If you want to raise an issue, please follow the recommendations below:
- Before you log a bug, please search the issue tracker to see if someone has already reported the problem.
- If the issue doesn't already exist, create a new issue.
- Please provide as much information as possible with the issue report, we like to know
the version of
Reactor Nettythat you are using, as well as yourOperating SystemandJVMversion. - If you want to raise a security vulnerability, please review our Security Policy for more details.
See our Contributing Guide for information about contributing to Reactor Netty.
You don't need to build from source to use Reactor Netty (binaries in
repo.spring.io), but if you want to try out the latest and
greatest, Reactor Netty can be easily built with the
gradle wrapper. You also need JDK 1.8.
$ git clone https://github.com/reactor/reactor-netty.git
$ cd reactor-netty
$ ./gradlew buildIf you want to publish the artifacts to your local Maven repository use:
$ ./gradlew publishToMavenLocalhttps://projectreactor.io/docs/netty/release/api/
- https://projectreactor.io/docs/netty/release/reference/index.html
- https://violetagg.github.io/reactor-netty-workshop/
Reactor Netty is Open Source Software released under the Apache License 2.0