This pull request includes two implementation: C extension and PHP package. Both implementations support encode/decode of singular, repeated and map fields.