mfenniak/rethinkdb-net — pull request #176 by mfenniak (2014-10-23 02:22:05+00:00)
Title: Support RethinkDB JSON protocol

Work-in-progress to convert to the JSON protocol.

Incorporated a small JSON library from sinesignal/ottoman, SineSignal.Ottoman.Serialization, with minor modifications; mostly deleting a few things that weren't required. This eliminates the need for us to add a large third-party dependency for a JSON library.

TODO:
* Fix whatever issues are breaking unit tests.
* FIXME on ability to read backtraces from the server.
* FIXME around using the correct JSON encoding for text->bytes, currently using UTF-8 and need to verify that's correct. Also remove encoding creation on every command run.
* Converting Query objects into JSON, and JSON into Response objects, is currently intermingled in the Connection class. I'm thinking I'd like to separate that into a "JSONProtocol" class, and possibly even restore the protobuf-based code into it's own class. This would allow comparison between the code (eg. performance testing, bug tracking down), and maybe even runtime selection between the protocol (although I don't know why, it just seems practical). The biggest goal would be code cleanup first.
* Review all code changes and see if I've left anything else ugly lying around.

This PR will address issue #175.