رفتن به محتوا

ساخت بدون MsgPack

MsgPack (MessagePack) یک فرمت سریال‌سازی باینری فشرده است — آن را به عنوان جایگزینی سریع‌تر و کوچک‌تر برای JSON در نظر بگیرید. Gin به طور پیش‌فرض شامل پشتیبانی رندرینگ و اتصال MsgPack است، به این معنی که برنامه شما می‌تواند داده‌های کدگذاری شده MsgPack را با استفاده از c.Bind() و c.Render() با نوع محتوای مناسب دریافت و ارسال کند.

با این حال، بسیاری از برنامه‌ها فقط از JSON استفاده می‌کنند و هرگز نیازی به MsgPack ندارند. در این صورت، وابستگی MsgPack وزن غیرضروری به باینری کامپایل شده شما اضافه می‌کند. می‌توانید آن را با تگ ساخت nomsgpack حذف کنید.

ساخت بدون MsgPack

تگ nomsgpack را به go build ارسال کنید:

Terminal window
go build -tags=nomsgpack .

این با سایر دستورات Go نیز کار می‌کند:

Terminal window
go run -tags=nomsgpack .
go test -tags=nomsgpack ./...

چه چیزی تغییر می‌کند

وقتی با nomsgpack می‌سازید، Gin کد رندرینگ و اتصال MsgPack را در زمان کامپایل حذف می‌کند. این چند اثر عملی دارد:

  • باینری کامپایل شده کوچک‌تر است زیرا کتابخانه سریال‌سازی MsgPack لینک نمی‌شود.
  • هر handler که سعی کند داده MsgPack را رندر یا متصل کند دیگر کار نخواهد کرد. اگر از c.ProtoBuf() یا سایر رندرکننده‌های غیر MsgPack استفاده می‌کنید، آن‌ها تحت تأثیر قرار نمی‌گیرند.
  • تمام ویژگی‌های JSON، XML، YAML، TOML و ProtoBuf به طور عادی به کار خود ادامه می‌دهند.

تأیید نتیجه

می‌توانید کاهش حجم باینری را با مقایسه ساخت‌ها تأیید کنید:

Terminal window
# Standard build
go build -o gin-app .
ls -lh gin-app
# Build without MsgPack
go build -tags=nomsgpack -o gin-app-nomsgpack .
ls -lh gin-app-nomsgpack

میزان صرفه‌جویی دقیق به برنامه شما بستگی دارد، اما حذف MsgPack معمولاً مقدار کمی از حجم باینری نهایی کم می‌کند. برای اطلاعات بیشتر، درخواست pull اصلی را ببینید.