2010-06-06 10 views
32

मैं पिछले कुछ दिनों से node.js (nodejs) के साथ खेल रहा हूं और यह शानदार है। जहां तक ​​मैं कह सकता हूं, लुआ में libev और libio का एक समान एकीकरण नहीं है, जो कि किसी को लगभग किसी भी अवरुद्ध कॉल से बचने और नेटवर्क और फाइल सिस्टम को असीमित तरीके से बातचीत करने देता है।लुआ के लिए नोड.जेएस?

मैं धीरे-धीरे अपने जावा कार्यान्वयन को नोडज पर भेज रहा हूं, लेकिन मुझे आश्चर्य है कि लुजिट v8 जावास्क्रिप्ट से बहुत तेज है और बहुत कम स्मृति का उपयोग करता है!

मुझे लगता है कि इस तरह के वातावरण में मेरे सर्वर को लिखने की कल्पना है (बहुत तेज़ और उत्तरदायी, बहुत कम स्मृति उपयोग, बहुत अभिव्यक्तिपूर्ण) मेरी परियोजना को बेहद सुधार देगा।

लुआ के लिए नया होने के नाते, मुझे यकीन नहीं है कि ऐसी कोई चीज़ मौजूद है या नहीं। मैं किसी भी पॉइंटर्स की सराहना करूंगा।

धन्यवाद

उत्तर

2

आप Node.js शैली lua-handlers के साथ गैर अवरुद्ध आईओ मिल सकती है।

यहां तक ​​कि एक async भी है। HTTP क्लाइंट, जो समानांतर HTTP अनुरोधों को शुरू करना वाकई आसान बनाता है। HTTP क्लाइंट इंटरफ़ेस के उदाहरण के रूप में test_http_client.lua फ़ाइल देखें। जैसे निम्नलिखित

23

पर एक नज़र डालें एक हाल ही में इसी परियोजना Luvit है "(लुआ + libUV + जेआईटी = शुद्ध awesomesauce) "।

announcement से:

इस मूल रूप से luajit2 + libuv (घटना पाश NodeJS पीछे पुस्तकालय) है। यह नोडजेस की तरह एक निष्पादन योग्य के रूप में संकलित करता है और चला सकता है। Lua फ़ाइलें। यह स्टॉक लुजाइट वितरण से अलग बनाता है, इसमें कई अंतर्निहित मॉड्यूल जोड़े गए हैं और कुछ थोड़ा अलग अर्थशास्त्र हैं।

ध्यान दें कि हम apache या जैसे किसी भी CGI स्क्रिप्ट के रूप में नहीं चल रहे हैं। लुआ स्क्रिप्ट http सर्वर है। आपको अपना कॉलबैक मिलता है जिसे हर बार सर्वर पर http अनुरोध किया जाता है।

3

luvit का उद्देश्य लुआ को होना चाहिए कि वास्तव में Node.js जावास्क्रिप्ट के लिए क्या है। निश्चित रूप से एक आशाजनक परियोजना।

5

आप Luvit पर देख सकते हैं या Lua Github साइट पर एक गैंडर देखना चाहते हैं। मुझे लगता है कि यह Lua के अंदर Node.js कार्यक्षमता लागू करने का दृष्टिकोण लेता है। आप क्लाइंट साइड पर और सर्वर की तरफ लूआ कोड लिखते हैं। यहां Luvit approach to doing Node.js functionality in Lua का विवरण दिया गया है।

6

तुम भी Luv पर एक नज़र हो सकता है:

https://github.com/richardhundt/luv

lua मेलिंग सूची से

:

कैसे Luv Luvit से संबंधित है - LuaJIT + libuv (Node.js : एस/जावास्क्रिप्ट/लुआ /)?

यह वास्तव में नहीं है। लुविट नोड.जेएस के आर्किटेक्चर (रिएक्टर कॉलबैक इत्यादि) से काफी हद तक उधार लेता है, लुजाइट के खिलाफ स्थिर रूप से लिंक करता है, यह अपने मॉड्यूल सिस्टम और निष्पादन योग्य प्रदान करता है। लव सिर्फ एक लुआ मॉड्यूल है जो libuv से बांधता है। मुख्य अंतर यह है कि Luv एक एम-एन थ्रेडिंग इंजन की तरह है जो हुड के नीचे libuv ईवेंट लूप का उपयोग करते समय कोरआउट और ओएस थ्रेड्स को जोड़ता है।

तो इस तथ्य के अलावा कि वे दोनों libuv से बंधे हैं, उनके पास बहुत आम नहीं है।

1

आपको लैपिस भी देखना चाहिए। यह ओपनरेस्टी के लिए बहुत हल्का और तेज़ ढांचा है: http://leafo.net/lapis/

मैं वास्तव में इसका आनंद ले रहा हूं और भविष्यवाणी करता हूं कि इसका उज्ज्वल भविष्य होगा!

आप OpenResty लाभ उठाने के लिए बनाया कुछ भी साथ उम्मीद होती है, यह मानक पागलपन की हद तक अच्छे हैं है: https://www.techempower.com/benchmarks/#section=data-r12&hw=peak&test=query

लापीस के लेखक भी एक CoffeeScript जैसी भाषा लुआ MoonScript कहा जाता है के लिए लिखा था जो काफी अच्छा है: http://moonscript.org/