# README
I have written a another library that uses standard MySQL syntax and it is way faster. Please visit this GQL.
Proton
Proton
is a small querying language for protobuffer.
Proton is still a work in progress. Please use it cautiously in your projects.
PLEASE NOTE THAT Proton
RELIES ON gopainless
PACKAGE MANAGER
A Protobuffer Querying Language
Proton is a "Protobuffer Querying Language" designed to provide automatic mapping between Protobuffer messages and other data structures. The original motivation behind creating Proton was to minimize development effort needed for integrating third party RESTful APIs in Go microservices. The idea is to leave modelling and mapping data to data engineers so that developers could focus more on getting the microservice ready fast.
Proton is compiled by Go AST package
Proton follows the exact same syntax as Go and it is compiled by the Go AST package. It has been designed so because the Go AST is a trustworthy package and no complexities relating to code compiling would be introduced to Proton's code base.
Proton is Extensible
Proton consists of a frontend that can be controlled by the user. This means that more functions can be injected to Proton when necessary. Only Go language is supported for injecting new functions.
Documentation
Proton allows mapping between different kinds of field types and it uses two approaches for mapping fields:
- Select: the
select
attribute allows for focusing the read scope on a particular object - Query: the
query
attribute provides a SQL like syntax for making complex mapping
To be continued...