This page describes the internals of the project. This is only relevant if you'd like to contribute to Apollo. For standard usage of Apollo, this page is not relevant.
Apollo uses Google's Protocol Buffers (opens in a new tab) to communicate with the client.
- The generated artifacts are available on our Maven repository as
- The underlying
.protodefinitions are available on Buf Schema Registry, at https://buf.build/lunarclient/apollo (opens in a new tab)
Note that although the
.proto files / messages generally match up with Apollo modules, there's circumstances where we
expose different interfaces in Apollo - primarily to make the API simpler to use.
For example, Apollo's
serverrule module end up flowing over the wire as the same packet. However, we split them into separate modules (with separate purposes) in the public API.
As all changes to the
.proto definitions require a corresponding implementation in the client to be usable, we aren't currently allowing direct contributions to
The usage of protocol buffers, and the generated code itself, is considered an implementation detail of Apollo. As such, we can only provide limited support to those wishing to use protocol buffers directly.