pact-foundation / pact-stub-server

Standalone pact stub server
MIT License
75 stars 19 forks source link

feat: reduce executable size #64

Closed YOU54F closed 6 months ago

YOU54F commented 6 months ago

Slim executables

[profile.release]
strip = true
opt-level = "z"
codegen-units = 1
lto = true

References

Motivation

Some of our client languages necessitate the inclusion of all supported platform/architecture combinations in a single package distributed to end-users.

Reducing the size of the executables and libraries if preferable, if there is no discernible difference for end user.

The proposed set of changes, opts not to set panic=abort over the default of panic=unwind.

The inclusion of the panic=abort will change behaviour which may lead to changes in how we program (if we are expecting to be able to unwind - maybe more relevant for the ffi?), but leads to smaller binary sizes. To go further than that, we need to build against nightly rust channels, which is probably less than preferable.

I believe these set of options provides the best trade-offs whilst remaining on a stable rust channel.

The strip option as a minimum should be included, it is actually now enabled by default in rust 1.77, related issue

https://github.com/rust-lang/cargo/issues/4122