AeonLucid/POGOProtos

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# This project is no longer maintained. Please use https://github.com/Furtif/POGOProtos instead, which is a fork of this project.

~POGOProtos~
===================

This repository contains the [ProtoBuf](https://github.com/google/protobuf) `.proto` files needed to decode the PokémonGo RPC.

If you want to know which messages are implemented right now, click [here](https://github.com/AeonLucid/POGOProtos/blob/master/src/POGOProtos/Networking/Requests/RequestType.proto).

# Usage

## Versioning

We are following [semantic versioning](http://semver.org/) for POGOProtos.  Every version will be mapped to their current PokémonGo version.

| Version      | Android       | iOS           | Extra                     |
|--------------|---------------|---------------|---------------------------|
| 2.14.0       | 0.71.0        | 1.41.0        |                           |
| 2.13.0       | 0.69.1        | 1.39.1        |                           |
| 2.12.0       | 0.69.0        | 1.39.0        |                           |
| 2.11.0       | 0.67.2        | 1.37.2        |                           |
| 2.11.0-beta  | 0.67.1        | 1.37.1        |                           |
| 2.10.x       | 0.63.1        | 1.33.1        |                           |
| 2.9.2        | 0.61.0        | 1.31.0        | Updated protobuf to 3.3.0 |
| 2.9.1        | 0.61.0        | 1.31.0        | Updated protobuf to 3.2.0 |
| 2.9.0        | 0.61.0        | 1.31.0        |                           |
| 2.8.0        | 0.59.1        | 1.29.1        |                           |
| 2.7.0        | 0.57.2        | 1.27.2        |                           |
| 2.6.x        | 0.55.0        | 1.25.0        |                           |
| 2.5.x        | 0.53.1        | 1.23.1        |                           |
| 2.4.x        | 0.51.0        | 1.21.0        |                           |
| 2.3.0        | 0.49.1        | 1.19.1        |                           |
| 2.2.0        | 0.47.1        | 1.17.0        |                           |
| 2.1.0        | 0.45.0        | 1.15.0        |                           |
| 2.1.0-beta   | 0.45.0        | 1.15.0        |                           |
| 2.0.x        | 0.43.4        | 1.13.4        |                           |

If you want to figure out the current version in an automated system, use this file.

https://raw.githubusercontent.com/AeonLucid/POGOProtos/master/.current-version

*Note: This file will contain pre-release versions too.*

## Preparation

Current recommended protoc version: "Protocol Buffers v3.3.0".

You can find download links [here](https://github.com/google/protobuf/releases).

### Windows
Be sure to add `protoc` to your environmental path.

### *nix
Ensure that you have the newest version of `protoc` installed.

### OS X
Use `homebrew` to install `protobuf ` with `brew install --devel protobuf`.

## Compilation
The compilation creates output specifically for the target language, i.e. respecting naming conventions, etc.  
This is an example of how the generated code will be organized:

```
python compile.py cpp:
 - POGOProtos/Data/PlayerData.proto -> POGOProtos/Data/PlayerData.pb.cpp
```
```
python compile.py csharp:
 - POGOProtos/Data/PlayerData.proto -> POGOProtos/Data/PlayerData.g.cs
 ```
 ```
python compile.py go:
 - POGOProtos/Data/*.proto -> github.com/aeonlucid/pogoprotos/data
 - POGOProtos/Data/PlayerData.proto -> github.com/aeonlucid/pogoprotos/data/player_data.pb.go
```
```
python compile.py java:
 - POGOProtos/Data/*.proto -> com/github/aeonlucid/pogoprotos/Data.java
 ```
 ```
python compile.py js:
 - POGOProtos/**/*.proto -> pogoprotos.js
```
```
python compile.py objc:
 - POGOProtos/Data/PlayerData.proto -> POGOProtos/Data/PlayerData.pbobjc.m
```
```
python compile.py python:
 - POGOProtos/Data/*.proto -> pogoprotos/data/__init__.py
 - POGOProtos/Data/PlayerData.proto -> pogoprotos/data/player_data_pb2.py
```
```
python compile.py ruby:
 - POGOProtos/Data/*.proto -> pogoprotos/data.rb
 - POGOProtos/Data/PlayerData.proto -> pogoprotos/data/player_data.rb
```
#### Command

Run ```python compile.py --help``` for help.

### Extra information
You can find all available languages here [https://github.com/google/protobuf](https://github.com/google/protobuf).

# Libraries

If you don't want to compile POGOProtos but instead use it directly, check out the following repository.

| Language         | Source                                                  |
|------------------|---------------------------------------------------------|
| NodeJS           | https://github.com/rastapasta/node-pokemongo-protobuf   |
| NodeJS (pure JS) | https://github.com/cyraxx/node-pogo-protos              |
| .NET             | https://github.com/AeonLucid/POGOProtos.NetStandard1    |
| .NET             | https://github.com/Necrobot-Private/POGOProtos          |
| .NET             | https://github.com/johnduhart/POGOProtos-dotnet         |
| PHP              | https://github.com/jaspervdm/pogoprotos-php             |
| Go               | https://github.com/pkmngo-odi/pogo-protos               |
| Haskell          | https://github.com/relrod/pokemon-go-protobuf-types     |
| Rust             | https://github.com/rockneurotiko/pokemon-go-protobuf-rs |