videre-project / MTGOSDK

A software development kit (SDK) for inspecting and interacting with the Magic: The Gathering Online (MTGO) client.
Apache License 2.0
3 stars 0 forks source link

Refactor ScubaDiver project #14

Closed Qonfused closed 2 months ago

Qonfused commented 3 months ago

Refactor (and migration of) ClrMD handling and IL emitting from ScubaDiver to use new MTGOSDK.Core machinery.

Qonfused commented 3 months ago

I've realized now that it may be easier to pick up #4 and refactor HTTP handling to use gRPC following this PR. The current implementation exists in a single file and is highly duplicative, which is terrible for maintainability. It is also very difficult to benchmark snapshot performance with the current architecture, which remains a blocker for #11.

Currently, request types are stored in MTGOSDK.Core.Remoting.Interop.Interactions, which can be refactored to new proto3 definitions. This will require a pretty significant refactor of the ScubaDiver project and the communicator (RemoteNET side) to use new gRPC machinery.