Protocol Buffers
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.
Overview
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
com.lunarclient:apollo-protos
- The underlying
.proto
definitions 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 modsetting
and 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.
Contributions
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 .proto
files.
Support
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.