ServiceTalk is a JVM network application framework with APIs tailored to specific protocols (e.g. HTTP/1.x, HTTP/2.x, etc…) and supports multiple programming paradigms.
It is built on Netty and is designed to provide most of the performance/scalability benefits of Netty for common networking protocols used in service to service communication. ServiceTalk provides server support and "smart client" like features such as client-side load balancing and service discovery integration.
See the ServiceTalk docs for more information.
ServiceTalk follows SemVer 2.0.0. API/ABI breaking changes will require package renaming for that module to avoid runtime classpath conflicts.
0.x.y releases are not stable and are permitted to break API/ABI.
|If you’re intending to contribute to ServiceTalk, make sure to first read the contribution guidelines.
ServiceTalk uses Gradle as its build tool and only requires JDK 8 or higher to be pre-installed. ServiceTalk ships with the Gradle Wrapper, which means that there is no need to install Gradle on your machine beforehand.
ServiceTalk’s source code is UTF-8 encoded: make sure your filesystem supports it before attempting to build
the project. Setting the
JAVA_TOOL_OPTIONS env var to
-Dfile.encoding=UTF-8 should help building the project in
non-UTF-8 environments. Editors and IDEs must also support UTF-8 in order to successfully edit ServiceTalk’s source
You should be able to run the following command to build ServiceTalk and verify that all tests and code quality checks pass:
$ ./gradlew build
The supported IDE is IntelliJ IDEA. In order to generate IntelliJ IDEA project files for ServiceTalk, you can run the following command:
$ ./gradlew idea
When done, running one of following commands would open ServiceTalk in IntelliJ:
$ idea .
$ open servicetalk.ipr