This is broken out into logical commits, tests pass after each commit (so you could choose to accept some subset). Commit messages should be explanatory. I'm happy to help split this apart into a few large logical commits if you'd like to schedule a few hours for some pairing.
Highlights:
Ran this on our internal thrift repo (~200 schemas / ~58k loc of thrift), fixed a ton of bugs that came up. Attempted to write test cases for everything I could.
Fixed some small runtime bugs, mostly related to error handling (for example, server codecs weren't always clearing their internal buffers etc.)
Added more guards against massive structures. Discovered via go-fuzz.
Added context.Context support to the generated RPC interfaces (enabled via a flag).
This is broken out into logical commits, tests pass after each commit (so you could choose to accept some subset). Commit messages should be explanatory. I'm happy to help split this apart into a few large logical commits if you'd like to schedule a few hours for some pairing.
Highlights: