منصوبے کے بارے میں
EnTT (انٹٹی-کمپوننٹ-سسٹم) ایک ہیڈر-اونلی C++20 لائبریری ہے جو بنیادی طور پر گیم پروگرامنگ کے لیے ڈیزائن کی گئی ہے لیکن وسیع تر سافٹ ویئر ڈویلپمنٹ پر بھی لاگو ہوتی ہے۔ یہ ایک اعلیٰ کارکردگی والا ECS نفاذ فراہم کرتی ہے جس میں 'صرف وہی ادا کریں جو آپ استعمال کریں' کی پالیسی، غیر محدود کمپوننٹ اقسام، اختیاری پوائنٹر استحکام، اور حسب ضرورت اسٹوریج ہکس شامل ہیں۔ لائبریری ویوز اور گروپس کے ذریعے متعدد تکرار کے نمونے پیش کرتی ہے، جو مکمل سٹرکچر-آف-ایریز (SoA) سے لے کر رینڈم رسائی تک ہوتے ہیں۔
بنیادی ECS سے آگے، EnTT میں بلٹ-ان RTTI سسٹم، constexpr ریسورس نیمنگ، ایک کم سے کم کنفیگریشن سسٹم، بہترین شیڈولنگ کے لیے ایگزیکیوشن گراف بلڈر، ایک سروس لوکیٹر، ایک غیر مداخلتی میکرو-فری رن ٹائم ریفلیکشن سسٹم، سٹیٹک پولی مورفزم یوٹیلیٹیز، حسب ضرورت کنٹینرز (بشمول سپارس-سیٹ پر مبنی ہیش میپ)، ایک تعاونی شیڈولر، ریسورس مینجمنٹ (کیش، لوڈرز، ہینڈلز)، ڈیلیگیٹس، سگنل ہینڈلرز، ایک ایونٹ ڈسپیچر، اور ایک CRTP پر مبنی ایونٹ ایمیٹر شامل ہیں۔
EnTT بڑے منصوبوں میں پروڈکشن میں استعمال ہوتی ہے جن میں Minecraft (Mojang)، ArcGIS Runtime SDKs (Esri)، اور Ragdoll Dynamics شامل ہیں۔ یہ CMake، Conan، vcpkg، Homebrew، build2، اور Bazel (bzlmod) کے ذریعے انضمام کرتی ہے۔ لائبریری کو C++20-مطابق کمپائلر کی ضرورت ہوتی ہے اور Doxygen کے ذریعے جامع دستاویزات فراہم کرتی ہے، Natvis ڈیبگنگ سپورٹ کے ساتھ۔ کوڈ کے لیے MIT لائسنس، دستاویزات کے لیے CC BY 4.0، اور لوگو کے لیے CC BY-SA 4.0 کے تحت لائسنس یافتہ ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.