mirror of
https://github.com/microsoft/terminal.git
synced 2025-12-10 00:48:23 -06:00
This pull request removes, in full, our dependency on cpprestsdk. This allows us to shed 500KiB-1.2MiB from our package off the top and enables the following future investments: - Removal of the App CRT forwarders to save an additional ~500KiB - Switching over to the HybridCRT and removing our dependency on _any CRT_. cpprest was built on my dev box two or so years ago, and is in _utter_ violation of our compliance guidelines on SBOM et al. In addition, this change allows us to use the proxy server configured in Windows Settings. I did this in four steps (represented roughly by the individual commits): 1. Switch from cpprest's http_client/json to Windows.Web.Http and Windows.Data.Json 2. Switch from websocketpp to winhttp.dll's WebSocket implementation¹ 3. Remove all remaining utility classes 4. Purge all dependencies from all projects and scripts on cpprest. I also took this opportunity to add a feature flag that allows Dev builds to run AzureConnection in-process. ¹ Windows.Networking.Sockets' API is so unergonomic that it was simply infeasible (and also _horrible_) to use it. ## Validation Steps I've run the Azure Connection quite a bit inproc. Closes #4575. Might be related to #5977, #11714, and with the user agent thing maybe #14403.