नोड.जेएस

नोड.js एक क्रॉस-प्लेटफॉर्म, ओपन-सोर्स सर्वर है। जो माइक्रोसॉफ़्ट विंडोज़, लिनक्स, यूनिक्स, मैक OS, और अन्य पर चल सकता है। नोड.js एक बैक-एंड जावास्क्रिप्ट रनटाइम क्लाइमेट है, जो V8 जावास्क्रिप्ट इंजन पर चलता है, और एक वेब ब्राउज़र के बाहर जावास्क्रिप्ट कोड निष्पादित करता है।

नोड.js डेवलपर्स को कमांड लाइन टूल लिखने और सर्वर-साइड स्क्रिप्टिंग के लिए जावास्क्रिप्ट का उपयोग करने देता है। सर्वर पर जावास्क्रिप्ट कोड चलाने की क्षमता का उपयोग अधिकांशतः उपयोगकर्ता के वेब ब्राउज़र पर पेज भेजे जाने से पहले गतिशील वेब पेज सामग्री उत्पन्न करने के लिए किया जाता है। नतीजतन, नोड.js एक "हर जगह जावास्क्रिप्ट" प्रतिमान का प्रतिनिधित्व करता है, सर्वर बनाम क्लाइंट-साइड प्रोग्रामिंग के लिए विभिन्न लैंगुएजेस का उपयोग करने के विपरीत, एक ही प्रोग्रामिंग लैंग्वेज वेब-एप्लिकेशन विकास को एकीकृत करता है।

नोड.js में एक इवेंट-संचालित आर्किटेक्चर है जो एसिंक्रोनस I/O में सक्षम है। इन डिज़ाइन विकल्पों का उद्देश्य कई इनपुट/आउटपुट संचालन के साथ-साथ वास्तविक समय वेब अनुप्रयोगों के साथ वेब अनुप्रयोगों में थ्रूपुट और स्केलेबिलिटी को अनुकूलित करना है।

नोड.js वितरित विकास परियोजना पहले नोड.js फाउंडेशन द्वारा शासित थी, और अब ओपन JS फाउंडेशन बनाने के लिए JS फाउंडेशन के साथ विलय कर दिया गया है। ओपन JS फाउंडेशन को लिनक्स फाउंडेशन के सहयोगात्मक परियोजना कार्यक्रम द्वारा सुविधा प्रदान की जाती है।

नोड.js सॉफ़्टवेयर के कॉर्पोरेट उपयोगकर्ताओं में गोडैडी, ग्रूपन, IBM, लिंक्डइन, माइक्रोसाफ्ट, नेटफ्लिक्स, पेपैल, SAP  वॉल-मार्ट, याहू !, और अमेज़ॅन वेब सर्विसेज सम्मलित हैं।

इतिहास
नोड.js को आरंभ में 2009 में रयान डाहल द्वारा लिखा गया था, पहले सर्वर-साइड जावास्क्रिप्ट वातावरण, नेटस्केप के लाइववायर प्रो वेब आरंभ के लगभग 13 साल बाद विकसित किया था। प्रारंभिक रिलीज़ केवल लिनक्स और मैक OS का समर्थन किया था। डाहल ने 2009 में सबसे लोकप्रिय वेब सर्वर, अपाचे HTTP सर्वर की सीमित संभावनाओं की आलोचना की, जिसमें बहुत सारे समवर्ती कनेक्शन और कोड बनाने का सबसे सामान्य (अनुक्रमिक प्रोग्रामिंग) को संभालने की क्षमता थी, जब कोड या तो अवरुद्ध हो जाता था। तो एक साथ कनेक्शन की स्थिति में संपूर्ण प्रक्रिया या निहित एकाधिक निष्पादन स्तंभ है।

डाहल ने 8 नवंबर 2009 को उद्घाटन यूरोपीय js कॉन्फ में इस परियोजना का प्रदर्शन किया। नोड.js ने  गूगल के क्रोम V8 जावास्क्रिप्ट इंजन, एक इवेंट लूप और एक निम्न-स्तरीय I/O अप्लिकेशन प्रोग्रामिंग अंतरफलक को संयोजित किया था।

जनवरी 2010 में, नोड.js वातावरण के लिए npm नामक एक पैकेज मैनेजर उपस्थित किया गया था। पैकेज प्रबंधक प्रोग्रामर्स के लिए नोड.js पैकेजों के स्रोत कोड को प्रकाशित और साझा करना आसान बनाता है और इसे पैकेजों की स्थापना, अद्यतन और संस्थापन को सरल बनाने के लिए डिज़ाइन किया गया है।

जून 2011 में, माइक्रोसॉफ्ट और जॉयंट ने Node.js का एक देशी विंडोज़ संस्करण लागू किया।[33] विंडोज़ को सपोर्ट करने वाला पहला Node.js बिल्ड जुलाई 2011 में जारी किया गया था।

जनवरी 2012 में, डाहल ने परियोजना का प्रबंधन करने के लिए सहकर्मी और एनपीएम (सॉफ्टवेयर) निर्माता इसहाक श्लुएटर को बढ़ावा देते हुए पद छोड़ दिया था। जनवरी 2014 में, श्लुएटर ने घोषणा की कि टिमोथी जे. फॉन्टेन इस परियोजना का नेतृत्व करेंगे।

दिसंबर 2014 में, फेडर इंडुटनी ने io.js शुरू किया, जो Node.js का एक हिस्सा है। जॉयंट के शासन पर आंतरिक संघर्ष के कारण, io.js को एक अलग तकनीकी समिति के साथ एक खुले शासन विकल्प के रूप में बनाया गया था। Node.js के विपरीत, लेखकों ने io.js को Google V8 जावास्क्रिप्ट इंजन की नवीनतम रिलीज़ के साथ अद्यतन रखने की योजना बनाई है।

फरवरी 2015 में, एक तटस्थ Node.js फाउंडेशन बनाने के इरादे की घोषणा की गई थी। जून 2015 तक, Node.js और io.js समुदायों ने Node.js फाउंडेशन के तहत एक साथ काम करने के लिए मतदान किया।

सितंबर 2015 में, Node.js v0.12 और io.js v3.3 को वापस Node v4.0 में एक साथ मिला दिया गया। इस विलय से Node.js में V8 ES6 सुविधाएँ और एक दीर्घकालिक समर्थन रिलीज़ चक्र लाया। 2016 तक, io.js वेबसाइट अनुशंसा करती है कि डेवलपर्स Node.js पर वापस चले जाएं और मर्ज के कारण io.js की कोई और रिलीज़ की योजना नहीं बनाई गई है।

2019 में, JS फाउंडेशन और Node.js फाउंडेशन का विलय होकर OpenJS फाउंडेशन बना गया।

15 मार्च 2023 को, Node.js 19.8.1 जारी किया गया था।

अवलोकन
Node.js जावास्क्रिप्ट और "मॉड्यूल" के संग्रह का उपयोग करके वेब सर्वर और नेटवर्किंग टूल के निर्माण की अनुमति देता है जो विभिन्न मुख्य कार्यात्मकताओं को संभालते हैं।   फाइल सिस्टम I/O, नेटवर्किंग (DNS, HTTP, TCP, TLS/SSL, या UDP), बाइनरी डेटा, क्रिप्टोग्राफी फ़ंक्शंस, डेटा स्ट्रीम और अन्य मुख्य फ़ंक्शंस के लिए मॉड्यूल प्रदान किए जाते हैं।  Node.js के मॉड्यूल सर्वर अनुप्रयोगों को लिखने की जटिलता को कम करने के लिए डिज़ाइन किए गए एपीआई का उपयोग करते हैं।

जावास्क्रिप्ट एकमात्र ऐसी भाषा है जिसका Node.js मूल रूप से समर्थन करता है, लेकिन कई कंपाइल-टू-JS लैंगुएजेस उपलब्ध हैं। परिणामस्वरूप, Node.js अनुप्रयोगों को कॉफीस्क्रिप्ट, डार्ट, टाइपस्क्रिप्ट, क्लोजरस्क्रिप्ट और अन्य में लिखा जा सकता है।

Node.js का उपयोग मुख्य रूप से वेब सर्वर जैसे नेटवर्क प्रोग्राम बनाने के लिए किया जाता है। Node.js और PHP के बीच सबसे महत्वपूर्ण अंतर यह है कि PHP में अधिकांश फ़ंक्शन पूरा होने तक ब्लॉक होते हैं (कमांड पिछले कमांड समाप्त होने के बाद ही निष्पादित होते हैं), जबकि Node.js फ़ंक्शन नॉन-ब्लॉकिंग होते हैं (कमांड समवर्ती या समानांतर में भी निष्पादित होते हैं, और पूर्णता या विफलता का संकेत देने के लिए कॉलबैक का उपयोग) करते है।

Node.js आधिकारिक तौर पर Linux, macOS और Microsoft Windows 8.1 और सर्वर 2012 (और बाद में) पर समर्थित है, SmartOS और IBM AIX के लिए टियर 2 समर्थन और FreeBSD के लिए प्रायोगिक समर्थन के साथ OpenBSD भी काम करता है, और LTS संस्करण IBM i (AS/400) के लिए उपलब्ध है। प्रदान किया गया स्रोत कोड आधिकारिक तौर पर समर्थित ऑपरेटिंग सिस्टम के समान ऑपरेटिंग सिस्टम पर भी बनाया जा सकता है या नॉनस्टॉप ओएस और यूनिक्स सर्वर जैसे अन्य का समर्थन करने के लिए तीसरे पक्ष द्वारा संशोधित किया जा सकता है।

प्लेटफार्म आर्किटेक्चर
Node.js वेब सर्वर पर इवेंट-संचालित प्रोग्रामिंग लाता है, जिससे जावास्क्रिप्ट में तेज वेब सर्वर का विकास संभव हो पाता है। डेवलपर्स इवेंट-संचालित प्रोग्रामिंग के एक सरलीकृत मॉडल का उपयोग करके थ्रेडिंग का उपयोग किए बिना स्केलेबल सर्वर बना सकते हैं जो किसी कार्य के पूरा होने का संकेत देने के लिए कॉलबैक का उपयोग करता है। Node.js एक स्क्रिप्टिंग भाषा (जावास्क्रिप्ट) की आसानी को यूनिक्स नेटवर्क प्रोग्रामिंग की शक्ति से जोड़ता है।

Node.js को Google के V8 JavaScript इंजन के शीर्ष पर बनाया गया था क्योंकि यह BSD लाइसेंस के तहत ओपन-सोर्स किया गया था। यह HTTP, DNS और TCP जैसे इंटरनेट बुनियादी सिद्धांतों में कुशल है। जावास्क्रिप्ट भी एक प्रसिद्ध भाषा थी, जिसने Node.js को वेब डेवलपर समुदाय के लिए सुलभ बना दिया था।

उद्योग समर्थन
यहां Node.js के लिए हजारों ओपन-सोर्स लाइब्रेरी हैं, उनमें से अधिकांश एनपीएम वेबसाइट पर होस्ट की गई हैं। ऐसे कई डेवलपर सम्मेलन और कार्यक्रम हैं जो Node.js समुदाय का समर्थन करते हैं, जिनमें NodeConf, Node इंटरएक्टिव और नोड शिखर सम्मेलन के साथ-साथ कई क्षेत्रीय कार्यक्रम भी शामिल हैं।

ओपन-सोर्स समुदाय ने अनुप्रयोगों के विकास में तेजी लाने के लिए वेब फ्रेमवर्क विकसित किया है। इस तरह के फ्रेमवर्क में कनेक्ट, एक्सप्रेस.जेएस, सॉकेट.आईओ, फेदर्स.जेएस, कोआ.जेएस, हापी.जेएस, सेल्स.जेएस, मेटियोर, डर्बी और कई अन्य शामिल हैं। अन्य भाषाओं या माइक्रोसॉफ्ट .NET जैसे रनटाइम वातावरण के साथ इंटरफेस करने के लिए विभिन्न पैकेज भी बनाए गए हैं।

आधुनिक डेस्कटॉप आईडीई विशेष रूप से Node.js अनुप्रयोगों के लिए संपादन और डिबगिंग सुविधाएँ प्रदान करते हैं। ऐसे आईडीई में एटम, ब्रैकेट्स, जेटब्रेन्स MPS वेबस्टॉर्म, माइक्रोसॉफ्ट विजुअल स्टूडियो शामिल हैं।    ) नेटबीन्स, नोडेक्लिप्स एनाइड स्टूडियो (एक्लिप्स-आधारित), और विजुअल स्टूडियो कोड  कुछ ऑनलाइन वेब-आधारित IDE भी Node.js का समर्थन करते हैं, जैसे Codeanywhere, Codenvy, Cloud9 IDE, Koding, और Node-RED में विजुअल फ्लो एडिटर है।

Node.js जेलास्टिक, गूगल क्लाउड प्लेटफ़ॉर्म, AWS इलास्टिक बीनस्टॉक, जॉयंट और अन्य जैसे कई क्लाउड-होस्टिंग प्लेटफ़ॉर्म पर समर्थित है।

लोकार्पण
Node.js की नई प्रमुख रिलीज़ हर छह महीने में गिटहब मुख्य शाखा से काटी जाती हैं। सम-संख्या वाले संस्करण अप्रैल में काटे जाते हैं और विषम-संख्या वाले संस्करण अक्टूबर में काटे जाते हैं। जब एक नया विषम संस्करण जारी किया जाता है, तो पिछला सम संस्करण दीर्घकालिक समर्थन के संक्रमण से गुजरता है, जो उस संस्करण को एलटीएस नामित होने की तारीख से 18 महीने का सक्रिय समर्थन देता है। इन 18 महीनों की समाप्ति के बाद, एलटीएस रिलीज़ को 12 महीने की अतिरिक्त रखरखाव सहायता प्राप्त होता है। एक सक्रिय संस्करण को वर्तमान रिलीज़ में आने के कुछ सप्ताह बाद परिवर्तनों के नॉन-ब्रेकिंग बैकपोर्ट प्राप्त होते हैं। एक रखरखाव रिलीज़ को केवल महत्वपूर्ण सुधार और दस्तावेज़ीकरण अद्यतन प्राप्त होते हैं। एलटीएस वर्किंग ग्रुप नोड.जेएस फाउंडेशन की तकनीकी संचालन समिति के सहयोग से रणनीति और नीति का प्रबंधन करता है।

पारिभाषिक विवरण
Node.js एक जावास्क्रिप्ट रनटाइम वातावरण है जो आने वाले अनुरोधों को एक लूप में संसाधित करता है, जिसे इवेंट लूप कहा जाता है।

आंतरिक
Node.js अतुल्यकालिक घटनाओं को संभालने के लिए हुड के नीचे libuv का उपयोग करता है। लिबव विंडोज और पॉज़िक्स-आधारित सिस्टम जैसे लिनक्स, मैकओएस, ओएसएस ऑन नॉनस्टॉप और यूनिक्स दोनों पर नेटवर्क और फ़ाइल सिस्टम कार्यक्षमता के लिए एक अमूर्त परत है। HTTP समर्थन के लिए Node.js nghttp2 पर निर्भर करता है। संस्करण 20 के अनुसार, Node.js ada लाइब्रेरी का उपयोग करता है जो अप-टू-डेट WHATWG URL अनुपालन प्रदान करता है। संस्करण 19.5 के अनुसार, तेजी से यूनिकोड सत्यापन और ट्रांसकोडिंग के लिए Node.js simdutf लाइब्रेरी का उपयोग करता है.

थ्रेडिंग
Node.js नॉन-ब्लॉकिंग I/O कॉल का उपयोग करते हुए सिंगल थ्रेडिंग इवेंट लूप पर काम करता है, जो इसे थ्रेड संदर्भ स्विचिंग की लागत के बिना हजारों समवर्ती कनेक्शनों का समर्थन करने की अनुमति देता है। ऑब्जर्वर पैटर्न का उपयोग करने वाले सभी अनुरोधों के बीच एक एकल थ्रेड साझा करने का डिज़ाइन अत्यधिक समवर्ती अनुप्रयोगों के निर्माण के लिए है, जहां I/O करने वाले किसी भी फ़ंक्शन को कॉलबैक का उपयोग करना होगा। सिंगल-थ्रेडेड इवेंट लूप को समायोजित करने के लिए, Node.js libuv लाइब्रेरी का उपयोग करता है - जो बदले में, एक निश्चित आकार के थ्रेड पूल का उपयोग करता है जो कुछ गैर-अवरुद्ध एसिंक्रोनस I/O संचालन को संभालता है।

एक थ्रेड पूल Node.js में समानांतर कार्यों के निष्पादन को संभालता है। मुख्य थ्रेड फ़ंक्शन कॉल कार्यों को साझा कार्य कतार में पोस्ट करता है, जिसे थ्रेड पूल में थ्रेड खींचता है और निष्पादित करता है। नेटवर्किंग जैसे स्वाभाविक रूप से गैर-अवरुद्ध सिस्टम फ़ंक्शंस कर्नेल-साइड नॉन-ब्लॉकिंग सॉकेट में अनुवादित होते हैं, जबकि अंतर्निहित रूप से ब्लॉकिंग सिस्टम फ़ंक्शंस जैसे फ़ाइल I/O अपने स्वयं के थ्रेड्स पर अवरुद्ध तरीके से चलते हैं। जब थ्रेड पूल में कोई थ्रेड किसी कार्य को पूरा करता है, तो यह मुख्य थ्रेड को सूचित करता है, जो बदले में जागता है और पंजीकृत कॉलबैक निष्पादित करता है।

इस एकल-थ्रेडेड दृष्टिकोण का नकारात्मक पहलू यह है कि Node.js क्लस्टर जैसे अतिरिक्त मॉड्यूल का उपयोग किए बिना जिस मशीन पर यह चल रहा है उसके सीपीयू कोर की संख्या में वृद्धि करके ऊर्ध्वाधर स्केलिंग की अनुमति नहीं देता है, स्ट्रॉन्गलूप प्रोसेस मैनेजर, या अपराह्न 2 हालाँकि, डेवलपर्स libuv थ्रेड पूल में थ्रेड्स की डिफ़ॉल्ट संख्या बढ़ा सकते हैं। सर्वर ऑपरेटिंग सिस्टम (OS) द्वारा इन थ्रेड्स को कई कोर में वितरित करने की संभावना है। एक और समस्या यह है कि लंबे समय तक चलने वाली गणनाएं और अन्य सीपीयू-बाध्य कार्य पूरा होने तक पूरे इवेंट-लूप को रोक देते हैं।

V8
V8 जावास्क्रिप्ट निष्पादन इंजन है जिसे प्रारंभ में Google Chrome के लिए बनाया गया था। इसे 2008 में Google द्वारा ओपन-सोर्स किया गया था। C++ में लिखा गया, V8 रनटाइम पर जावास्क्रिप्ट स्रोत कोड को मूल मशीन कोड में संकलित करता है। 2016 तक, इसमें इग्निशन, एक बायटेकोड दुभाषिया भी शामिल है।

पैकेज प्रबंधन
npm Node.js सर्वर प्लेटफ़ॉर्म के लिए पूर्व-स्थापित पैकेज प्रबंधक है। यह npm रजिस्ट्री से Node.js प्रोग्राम स्थापित करता है, तृतीय-पक्ष Node.js प्रोग्रामों की स्थापना और प्रबंधन को व्यवस्थित करता है। एनपीएम रजिस्ट्री में पैकेज साधारण सहायक लाइब्रेरी जैसे लॉडैश से लेकर ग्रंट जैसे टास्क रनर तक हो सकते हैं।

एकीकृत API
Node.js को एक ब्राउज़र के साथ एक साइट, एक डेटाबेस के साथ जोड़ा जा सकता है जो JSON डेटा (जैसे कि PostgreSQL, MongoDB, या CouchDB) और JSON को एकीकृत जावास्क्रिप्ट डेवलपमेंट स्टैक के लिए सपोर्ट करता है। MVC, MVP, MVVM इत्यादि जैसे अनिवार्य रूप से सर्वर-साइड विकास पैटर्न के अनुकूलन के साथ, नोड.जेएस क्लाइंट साइड और सर्वर साइड के बीच समान मॉडल और सेवा इंटरफ़ेस के पुन: उपयोग की अनुमति देता है।

इवेंट लूप
Node.js ऑपरेटिंग सिस्टम के साथ पंजीकृत होता है इसलिए OS इसे कनेक्शन के बारे में सूचित करता है और कॉलबैक जारी करता है। Node.js रनटाइम के भीतर, प्रत्येक कनेक्शन एक छोटा heap allocation है। परंपरागत रूप से, अपेक्षाकृत हेवीवेट ओएस प्रक्रियाएं या थ्रेड प्रत्येक कनेक्शन को संभालते हैं। Node.js प्रक्रियाओं या थ्रेड्स के बजाय स्केलेबिलिटी के लिए इवेंट लूप का उपयोग करता है। अन्य इवेंट-संचालित सर्वरों के विपरीत, Node.js के इवेंट लूप को स्पष्ट रूप से कॉल करने की आवश्यकता नहीं है। इसके बजाय, कॉलबैक परिभाषित किए जाते हैं, और सर्वर स्वचालित रूप से कॉलबैक परिभाषा के अंत में इवेंट लूप में प्रवेश करता है। जब कोई और कॉलबैक नहीं किया जाना हो तो Node.js इवेंट लूप से बाहर निकल जाता है।

वेबअसेंबली
Node.js WebAssembly को सपोर्ट करता है औऔर Node 14 के अनुसार इसमें WASI, WebAssembly सिस्टम इंटरफ़ेस का प्रयोगात्मक सपोर्ट है।

मूल बंधन
Node.js एन-एपीआई नामक सी-आधारित एपीआई के माध्यम से "ऐड-ऑन" बनाने का एक तरीका प्रदान करता है, जिसका उपयोग  C/C++ में लिखे स्रोत कोड से लोड करने योग्य (आयात योग्य) .नोड मॉड्यूल का उत्पादन करने के लिए किया जा सकता है। मॉड्यूल को सीधे मेमोरी में लोड किया जा सकता है और जेएस वातावरण के भीतर से सरल कॉमनजेएस मॉड्यूल के रूप में निष्पादित किया जा सकता है। N-API का कार्यान्वयन आंतरिक C/C++ Node.js और V8 ऑब्जेक्ट्स पर निर्भर करता है, जिसके लिए उपयोगकर्ताओं को अपने मूल स्रोत कोड में नोड.जेएस विशिष्ट हेडर आयात (सम्मलित) करने की आवश्यकता होती है।

चूँकि Node.js API बाइनरी स्तर पर परिवर्तन के अधीन है, ठीक से काम करने के लिए मॉड्यूल को विशिष्ट Node.js संस्करणों के विरुद्ध बनाया और शिप किया जाना है। समस्या का समाधान करने के लिए, तीसरे पक्षों ने एपीआई के शीर्ष पर ओपन-सोर्स्ड С/С++ रैपर पेश किए हैं जो समस्या को आंशिक रूप से कम करते हैं। वे इंटरफ़ेस को सरल बनाते हैं, लेकिन एक साइड इफेक्ट के रूप में वे जटिलता भी ला सकते हैं जिससे अनुरक्षकों को निपटना पड़ता है। भले ही Node.js की मुख्य कार्यक्षमता जावास्क्रिप्ट अंतर्निहित लाइब्रेरी में रहती है, C++ में लिखे गए मॉड्यूल का उपयोग क्षमताओं को बढ़ाने और अनुप्रयोगों के प्रदर्शन को बेहतर बनाने के लिए किया जा सकता है।

ऐसे मॉड्यूल तैयार करने के लिए एक उपयुक्त C++ कंपाइलर और आवश्यक हेडर की आवश्यकता होती है (बाद वाले आमतौर पर Node.js के साथ ही भेजे जाते हैं), उदाहरण के लिए, gcc, clang या MSVC++ |

एन-एपीआई जावा मूल इंटरफ़ेस  के समान है।

प्रोजेक्ट गवर्नेंस
22015 में, बड़े Node.js समुदाय की विभिन्न शाखाओं ने विक्रेता-तटस्थ Node.js फाउंडेशन के तहत काम करना शुरू किया। संगठन का घोषित उद्देश्य "व्यापक रूप से अपनाने को सक्षम करना और एक खुले शासन मॉडल के माध्यम से Node.js और अन्य संबंधित मॉड्यूल के विकास में तेजी लाने में मदद करना है जो भागीदारी, तकनीकी योगदान और नोड में निवेशित पारिस्थितिकी तंत्र द्वारा दीर्घकालिक प्रबंधन के लिए एक रूपरेखा को प्रोत्साहित करता है।

Node.js फाउंडेशन तकनीकी संचालन समिति (TSC) Node.js फाउंडेशन की तकनीकी शासी निकाय है। टीएससी कोर नोड.जेएस रेपो के साथ-साथ आश्रित और आसन्न परियोजनाओं के लिए जिम्मेदार है। आम तौर पर टीएससी इन परियोजनाओं का प्रशासन कार्य समूहों या समितियों को सौंपती है। LTS समूह जो दीर्घकालिक समर्थित रिलीज़ का प्रबंधन करता है, ऐसा ही एक समूह है। अन्य मौजूदा समूहों में वेबसाइट, स्ट्रीम, बिल्ड, डायग्नोस्टिक्स, i18n, इवेंजेलिज्म, डॉकर, एडऑन एपीआई, बेंचमार्किंग, पोस्ट-मॉर्टम, अंतर्राष्ट्रीय, दस्तावेज़ीकरण और परीक्षण शामिल हैं।

अगस्त 2017 में, टीएससी के एक तिहाई सदस्यों ने परियोजना की आचार संहिता से संबंधित विवाद के कारण इस्तीफा दे दिया।

यह भी देखें

 * डेनो—जावास्क्रिप्ट और टाइपस्क्रिप्ट के लिए एक बैक-एंड रनटाइम वातावरण, जिसे रयान डाहल ने भी बनाया है।