From 580252dc4893d42c8c8b90fe6751a57b7cce1fc8 Mon Sep 17 00:00:00 2001 From: kim Date: Fri, 24 Oct 2025 00:08:10 +0200 Subject: [chore] reduce binary size (#4519) - sets the nomsgpack build tag to instruct gin to build without msgpack support (which we don't use, anyway) - sets the stdlibjson build tag to instruct minio to use the stdlib JSON encoder / decoder instead of goccy/json both of the above net a size decrease of ~7MB Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4519 Co-authored-by: kim Co-committed-by: kim --- scripts/build.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'scripts/build.sh') diff --git a/scripts/build.sh b/scripts/build.sh index c6931e09d..a526a679c 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -6,7 +6,7 @@ set -e log_exec() { echo "$ ${*}"; "$@"; } # Grab environment variables and set defaults + requirements. -GO_BUILDTAGS="${GO_BUILDTAGS-} netgo osusergo static_build timetzdata" +GO_BUILDTAGS="${GO_BUILDTAGS-} netgo osusergo static_build timetzdata nomsgpack stdlibjson" GO_LDFLAGS="${GO_LDFLAGS-} -s -w -extldflags '-static' -X 'main.Version=${VERSION:-$(git describe --tags --abbrev=0)}'" GO_GCFLAGS=${GO_GCFLAGS-} @@ -16,6 +16,8 @@ GO_GCFLAGS=${GO_GCFLAGS-} # Available Go build tags, with explanation, followed by benefits of enabling it: # - timetzdata: embed timezone database inside binary (allow setting local time inside Docker containers, at cost of 450KB) +# - nomsgpack: removes msgpack encoding from gin (which we don't use anyway) (reduced binary size) +# - stdlibjson: sets encoding/json instead of goccy/go-json for minio (reduced binary size) # - nootel: disables compiling-in otel support (reduced binary size) # - noerrcaller: disables caller function prefix in errors (slightly better performance, at cost of err readability) # - debug: enables /debug/pprof endpoint (adds debug, at performance cost) -- cgit v1.2.3