Hi all, I am working on a Golang driver for TinkerPop. I will be working on it on my fork of TinkerPop <https://github.com/lyndonb-bq/tinkerpop/tree/gremlin-go>. I have laid out a plan for delivering it below. Each milestone will come to a main branch on the TinkerPop repo (branch yet to be made) that can be reviewed by anyone interested. If you would like to join in the development of the driver please let me know so we can make sure we are working on separate things as a couple others are already involved.
Each milestone will come with a basic README that ought to have enough info for someone to try out the current features of the driver. If anyone has any comments or questions on the below plan, feel free to comment. Note - the first serialization format will be GraphBinary. *Milestone 1 - Basic Connectivity with String Traversals* 1. Allows string traversals to be sent and received 2. Returns results as a string *Milestone 2 - ResultSet and Programmatic Traversals* 1. Proper ResultSet returned (iterable results with proper objects, might use channel since that is generally preferred in golang) 2. Programmatic traversal support (g.V().etc()) *Milestone 3 - TinkerPop Build Infrastructure Integration* 1. Gremlin-Go will build in the TinkerPop build infrastructure 2. Gherkin test suite integration 3. Go translator written in Java 4. Docker integration *Milestone 4 - Sessions, Strategies, Translator, Remote Transactions* 1. TraversalStrategies and DriverRemoteConnection strategy hookups 2. Sessions implementation 3. Remote transactions *Milestone 5 - Advanced Driver Features and Configuration Options* 1. Connection pooling and load balancing 2. Custom header injection, keep alive, connection timeout, and websocket compression 3. Authentication methods (IAM, kerberos) 4. GraphSON - Not sure if this will be required - it may be descoped. *Milestone 6 - Performance and Documentation* 1. Full documentation on par with other TinkerPop drivers 2. Performance tests and metrics on Driver performance -- *Lyndon Bauto* Team Lead Bit Quill Technologies Inc. [email protected] https://www.bitquilltech.com
