Skip to content

libgrpc_csharp_ext.x64.so in Grpc.Core NuGet package is huge (115 MB) #25862

@emz00

Description

@emz00

What version of gRPC and what language are you using?

Grpc.Core NuGet package 2.36.4

What operating system (Linux, Windows,...) and version?

Linux (and Windows)

What runtime / compiler are you using (e.g. python version or version of gcc)

.NET 5.0

What did you do?

Upgraded the Google.Cloud.PubSub.V1 NuGet package used by my application from 1.0.0 to 2.4.0.

What did you expect to see?

No significant increase in the size of our application's published binaries.

What did you see instead?

An increase of 83 MB in the size of my our application's published binaries, because the size of libgrpc_csharp_ext.x64.so increased by ~100 MB (but libgrpc_csharp_ext.x86.so was deleted, reducing the total increase somewhat). This is included in the Grpc.Core NuGet package, which is referenced by Google.Cloud.PubSub.V1.

Anything else we should know about your project / environment?

I found the workaround on the mailing list: strip --strip-debug libgrpc_csharp_ext.x64.so - and that was posted in response to someone complaining that 15 MB was too large, but now it's 115MB, which doubled our total deployment size. Yes, this single file is bigger than all the rest of our (by no means trivial) application and all its other dependencies combined! (The Windows native DLL is also quite large at 9.5 MB.)

Please publish a NuGet package without this huge bloat - the vast majority of NuGet users will not debug your library, especially not the native code in it. Debug info can be distributed separately. Yes, of course, I can strip it myself, just like I can compile it myself, but the point of NuGet is to provide a "ready to use" package for the average user.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions