summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorLibravatar kim <grufwub@gmail.com>2025-10-24 00:08:10 +0200
committerLibravatar tobi <tobi.smethurst@protonmail.com>2025-11-17 14:11:50 +0100
commit580252dc4893d42c8c8b90fe6751a57b7cce1fc8 (patch)
treea16b33630f7986b8a668cb35920f343a30d5ca6d /scripts
parent[chore/frontend] Use `autocomplete="one-time-code"` for 2fa input (#4516) (diff)
downloadgotosocial-580252dc4893d42c8c8b90fe6751a57b7cce1fc8.tar.xz
[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 <grufwub@gmail.com> Co-committed-by: kim <grufwub@gmail.com>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/build.sh4
1 files changed, 3 insertions, 1 deletions
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)