Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/apple/servicetalk
A networking framework that evolves with your application
https://github.com/apple/servicetalk
framework grpc http http2 java microservices netty reactive reactive-streams rpc
Last synced: about 1 month ago
JSON representation
A networking framework that evolves with your application
- Host: GitHub
- URL: https://github.com/apple/servicetalk
- Owner: apple
- License: apache-2.0
- Created: 2018-09-07T00:14:48.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2024-09-30T17:15:37.000Z (about 1 month ago)
- Last Synced: 2024-10-01T07:43:13.481Z (about 1 month ago)
- Topics: framework, grpc, http, http2, java, microservices, netty, reactive, reactive-streams, rpc
- Language: Java
- Homepage: https://docs.servicetalk.io
- Size: 62.4 MB
- Stars: 914
- Watchers: 42
- Forks: 180
- Open Issues: 75
-
Metadata Files:
- Readme: README.adoc
- Contributing: CONTRIBUTING.adoc
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.adoc
- Governance: GOVERNANCE.adoc
Awesome Lists containing this project
README
= ServiceTalk
image:https://img.shields.io/maven-central/v/io.servicetalk/servicetalk-annotations?color=blue[Maven Central]
image:https://github.com/apple/servicetalk/actions/workflows/ci-snapshot.yml/badge.svg[Snapshot Publisher]
image:https://img.shields.io/nexus/s/io.servicetalk/servicetalk-annotations?color=blue&server=https%3A%2F%2Foss.sonatype.org[Sonatype Snapshot]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 link:https://netty.io[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 link:https://docs.servicetalk.io/[ServiceTalk docs] for more information.
== Getting Started
ServiceTalk releases are available on link:https://repo1.maven.org/maven2/io/servicetalk/[Maven Central].
Refer to the link:https://docs.servicetalk.io/[ServiceTalk docs] for various examples that will get you started with the
different features of ServiceTalk.NOTE: Builds of the development version are available in
link:https://oss.sonatype.org/content/repositories/snapshots/io/servicetalk/[Sonatype's snapshots Maven repository].== Supported JVM
The minimum supported JDK version is 1.8.== Compatibility
ServiceTalk follows link:https://semver.org/#semantic-versioning-200[SemVer 2.0.0]. API/ABI breaking changes will
require package renaming for that module to avoid runtime classpath conflicts.NOTE: `0.x.y` releases are not stable and are permitted to break API/ABI.
== Contributor Setup
IMPORTANT: If you're intending to contribute to ServiceTalk,
make sure to first read the xref:CONTRIBUTING.adoc[contribution guidelines].ServiceTalk uses link:https://gradle.org[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.=== File Encoding
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
code.=== Build Commands
You should be able to run the following command to build ServiceTalk and verify that all
tests and code quality checks pass:[source,shell]
----
$ ./gradlew build
----The supported IDE is link:https://www.jetbrains.com/idea[IntelliJ IDEA].
In order to generate IntelliJ IDEA project files for ServiceTalk,
you can run the following command:[source,shell]
----
$ ./gradlew idea
----When done, running one of following commands would open ServiceTalk in IntelliJ:
.Generic
[source,shell]
----
$ idea .
----.macOS
[source,shell]
----
$ open servicetalk.ipr
----== Project Communication
We encourage your participation asking questions and helping improve the ServiceTalk project.
link:https://github.com/apple/servicetalk/issues[Github issues] and
link:https://github.com/apple/servicetalk/pulls[pull requests] are the primary mechanisms of
participation and communication for ServiceTalk.