SteamRE / SteamKit

SteamKit2 is a .NET library designed to interoperate with Valve's Steam network. It aims to provide a simple, yet extensible, interface to perform various actions on the network.
GNU Lesser General Public License v2.1
2.57k stars 490 forks source link

Split game-specific protobufs into separate dlls #940

Open xPaw opened 3 years ago

xPaw commented 3 years ago

They're quite large, and not needed for SteamKit itself (only few generic GC protos are needed).

At which point, it could just be automatically updated with a cron action.

If there's one dll (nuget package?) per game, consumers can only include what they actually need.

Currently steamkit.dll is 5.4mb, removing all game protos makes it 1.5mb

yaakov-h commented 3 years ago

If we split DLLs we should probably also have a NuGet package per game, at which point we may have to be a little more careful about bincompat.

yaakov-h commented 2 years ago

With an actually-working version of .NET trimming, the trimming solves the problem for apps that make use of trimming.

Unfortunately at the moment trimming breaks everything - #1057