ساخت بدون MsgPack
MsgPack (MessagePack) یک فرمت سریالسازی باینری فشرده است — آن را به عنوان جایگزینی سریعتر و کوچکتر برای JSON در نظر بگیرید. Gin به طور پیشفرض شامل پشتیبانی رندرینگ و اتصال MsgPack است، به این معنی که برنامه شما میتواند دادههای کدگذاری شده MsgPack را با استفاده از c.Bind() و c.Render() با نوع محتوای مناسب دریافت و ارسال کند.
با این حال، بسیاری از برنامهها فقط از JSON استفاده میکنند و هرگز نیازی به MsgPack ندارند. در این صورت، وابستگی MsgPack وزن غیرضروری به باینری کامپایل شده شما اضافه میکند. میتوانید آن را با تگ ساخت nomsgpack حذف کنید.
ساخت بدون MsgPack
تگ nomsgpack را به go build ارسال کنید:
go build -tags=nomsgpack .این با سایر دستورات Go نیز کار میکند:
go run -tags=nomsgpack .go test -tags=nomsgpack ./...چه چیزی تغییر میکند
وقتی با nomsgpack میسازید، Gin کد رندرینگ و اتصال MsgPack را در زمان کامپایل حذف میکند. این چند اثر عملی دارد:
- باینری کامپایل شده کوچکتر است زیرا کتابخانه سریالسازی MsgPack لینک نمیشود.
- هر handler که سعی کند داده MsgPack را رندر یا متصل کند دیگر کار نخواهد کرد. اگر از
c.ProtoBuf()یا سایر رندرکنندههای غیر MsgPack استفاده میکنید، آنها تحت تأثیر قرار نمیگیرند. - تمام ویژگیهای JSON، XML، YAML، TOML و ProtoBuf به طور عادی به کار خود ادامه میدهند.
تأیید نتیجه
میتوانید کاهش حجم باینری را با مقایسه ساختها تأیید کنید:
# Standard buildgo build -o gin-app .ls -lh gin-app
# Build without MsgPackgo build -tags=nomsgpack -o gin-app-nomsgpack .ls -lh gin-app-nomsgpackمیزان صرفهجویی دقیق به برنامه شما بستگی دارد، اما حذف MsgPack معمولاً مقدار کمی از حجم باینری نهایی کم میکند. برای اطلاعات بیشتر، درخواست pull اصلی را ببینید.