البناء بدون 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 لا تُربط.
- أي معالج يحاول عرض أو ربط بيانات 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 عادةً تقتطع مقداراً صغيراً من الملف الثنائي النهائي. لمزيد من المعلومات، راجع طلب السحب الأصلي.