All modules:
apollo-adapters contains adapters for common date and big decimal GraphQL scalars.
apollo-annotations is a very small artifact that contains contains @ApolloExperimental
and other annotations mainly useful for handling API lifecycle.
apollo-api contains the bare minimum symbols to compile the generated code. It does not contain any networking or caching code. For a more complete artifact, see apollo-runtime.
apollo-api-java contains adapters for Java Optional values.
apollo-ast contains code to work with the GraphQL Abstract Syntax Tree.
apollo-cli is a apollo-cli.jar
JVM application with helper commands to work with GraphQL schemas and APIs.
apollo-compiler is the low level compiler API used by apollo-gradle-plugin.
apollo-debug-server is a server that serves your normalized cache to the IntelliJ/Android Studio plugin.
apollo-engine-ktor is an implementation of HttpEngine
and WebSocketEngine
that use Ktor.
apollo-gradle-plugin-external contains the Apollo gradle plugin without the dependencies. It is smaller than apollo-gradle-plugin but more prone to Gradle classloader errors.
apollo-http-cache is a HTTP cache for your GraphQL operations. Compared to a regular HTTP cache, it also caches POST requests.
apollo-mockserver is a HTTP server for your tests. It supports multiplatform and websockets.
apollo-mpp-utils contains a few utilities for working with multiplatform projects.
apollo-normalized-cache contains ApolloStore
, ApolloCacheInterceptor
. apollo-store
would be a better module name but there's just too much stuff out there that uses apollo-normalized-cache
.
apollo-normalized-cache-api is the low-level cache. It knows nothing about coroutines and/or apollo-runtime
and contains a memory implementation of NormalizedCache
apollo-normalized-cache-sqlite contains an implementation of NormalizedCache
that uses SQLite to persist the data across app restarts.
apollo-runtime contains networking code to execute your queries and subscriptions. This is the main entry point.
apollo-runtime-java is similar to apollo-runtime but doesn't use coroutines or extension functions, making it easier to consume from Java.
apollo-rx2-support-java contains code to use apollo-runtime-java with RxJava2.
apollo-rx3-support-java contains code to use apollo-runtime-java with RxJava3.
apollo-tooling contains APIs to work with GraphQL schemas and operations as well as the GraphOS API. It is used from the CLI and Gradle plugin
An incubating network transport for websockets. It uses the com.apollographql.apollo3.network.ws.incubating
package. The current plan is to drop the .incubating
and replace the built-in WebSocketNetworkTransport
for 4.0.0.