GitHub user allengeorge opened a pull request: https://github.com/apache/thrift/pull/1146
THRIFT-2945: Add Rust support to Thrift This is a PR to add Rust support to Thrift. I would be happy to accept and incorporate feedback. Not implemented: * Struct/union constants: Honestly, this looks like it's "not possible" (tm) * Multiplexed processor I will be continuing to add documentation, comments and clean up the code in both the C++ generator as well as the Rust client library. You can merge this pull request into a Git repository by running: $ git pull https://github.com/allengeorge/thrift thrift-2945 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/thrift/pull/1146.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1146 ---- commit 7fd9921d7fdfb6f1eb66405777a4b0ea09dc9c5b Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-03T01:06:40Z Test code now uses generated files commit 31d560329f155ea618a4ced726b86597a0fdc260 Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-03T01:07:07Z Rust code-generator generates to a single file in correct directory commit a62656a03e97a41d0b86d497910f300f4409a7b1 Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-03T01:08:18Z Ignore generated thrift_test file commit a29b184faeed577471c090b0f84806a451d819df Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-03T10:48:15Z Export TProtocol commit ffd3fa4257e09879ba2f35938139d3a0f9678569 Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-03T10:48:32Z Generate struct impl skeletons commit 00f30b63f63df8db05f0d6f41ecfb4f222c805cd Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-04T11:22:06Z Do not use Rust keyword in ThriftTest.thrift commit 24c8319b6bb44ae671a21778535aeb3e5611d0b2 Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-04T11:22:27Z Begin implementing struct generation commit c3257a45118a1e14e9213dbb5dd72448e43db1ff Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-05T02:33:38Z Support map, set, list and struct generation commit c6b308eddde464291f7b248548956ee435be55bc Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-05T16:05:12Z Generate struct serialization skeletons commit 6cdd9d2e2010f4a0442ba729a1dc35432b198371 Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-05T16:05:30Z Add rift FIXMEs commit d56a097630430f21aad692aa8dd1059cbc31a305 Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-06T13:34:48Z Enable/add more field write/read methods commit a69c7e70bfff59d0def693cc5c1007f1f7a82910 Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-06T13:35:19Z Continue writing struct fields commit cccd0668ef0076c624128390e230ce918fd5a168 Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-06T21:38:40Z Basic fields write support commit e778e8c5a8c042f4646df6d54782271041c715e9 Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-06T22:13:40Z Support recursively writing structs as fields commit 920d1c56c0351010f0ae0df865eb5cf26ea1b850 Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-07T00:12:34Z Render service trait methods and beginning of write implementation commit b7a644b6d038363c112c527b8ddd24a3827418f5 Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-07T00:45:46Z Add flush() function commit 2496e76037587a7811b1fcef2cbf36d73b15f777 Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-07T13:14:44Z Very minor formatting commit 3655b201ea950ded43477a246126a0123e2fd6a6 Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-07T13:37:31Z Generate valid service call and send signatures commit 1d12b97378620fc3a5fec87c1fc829f9601dbb11 Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-07T14:03:55Z Complete call wrapper and generate recv skeleton commit 0b246c8a86f9a89689ca2817cb1958be42e97a10 Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-07T17:22:25Z Complete send code (note that call args struct generated improperly) commit 05b946d4846e1d509adea0714f98d4ab05f9b9d6 Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-07T23:31:18Z Fix issues with args struct commit 43a19b6bd283541a9bca196387f1b3fe830d1a4f Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-08T00:07:51Z Minor cleanups commit 3a485e9abc3209008c18fe4c62798f33c6b63180 Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-08T00:18:28Z More minor cleanups commit 0e6ec09b4dfb3f2476a05e3393b4fefbfa86f05b Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-08T12:46:36Z Split up struct method commit 826b8f5e0e02118fba9e6b3546a2606286a94d5e Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-09T03:24:57Z Clean up "use..." declarations and qualify Error, Result commit 48f94dd6493c1c42c9c96da781139520ce7b97e8 Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-09T07:26:44Z Add more error types and make TMessageType, TFieldType comparable commit 6195ee25aa155029d87e9acca9ce21a0de7eddf0 Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-09T07:27:18Z Render helper functions required for recv commit ce897ff8975d7d19a72506ae36997f72959fa32c Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-11T13:30:43Z Implement client recv method commit 9d2e4b0de2190a8772c848820a3d181f4d35756b Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-11T13:38:40Z Minor cleanups to struct rendering commit 659e709e52bcbd00ec04fc85315ebe1a5c71dfbe Author: Allen George <allen.geo...@gmail.com> Date: 2016-11-11T14:43:57Z Render cleaner version of ok_or ---- --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---