इस प्रोजेक्ट के बारे में

EnTT (Entity-Component-System) एक हेडर-ओनली C++20 लाइब्रेरी है जो मुख्य रूप से गेम प्रोग्रामिंग के लिए डिज़ाइन की गई है, लेकिन व्यापक सॉफ़्टवेयर डेवलपमेंट में भी लागू होती है। यह एक उच्च-प्रदर्शन ECS कार्यान्वयन प्रदान करती है जिसमें 'pay for what you use' नीति, अप्रतिबंधित कंपोनेंट प्रकार, वैकल्पिक पॉइंटर स्थिरता, और अनुकूलन योग्य स्टोरेज हुक शामिल हैं। लाइब्रेरी व्यू और ग्रुप के माध्यम से कई इटरेशन पैटर्न प्रदान करती है, जो परफेक्ट स्ट्रक्चर-ऑफ-एरेज़ (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 के तहत लाइसेंस प्राप्त है।