2010-06-06 33 views
32

Tôi đã chơi xung quanh với node.js (nodejs) trong vài ngày qua và nó thật tuyệt vời. Theo như tôi có thể nói, lua không có một sự tích hợp tương tự của libev và libio mà chúng ta hãy tránh hầu như bất kỳ cuộc gọi chặn và tương tác với mạng và hệ thống tập tin một cách không đồng bộ.Node.js cho lua?

Tôi đang từ từ chuyển thực hiện java của mình sang nodej, nhưng tôi bị sốc rằng luajit nhanh hơn nhiều so với v8 JavaScript VÀ sử dụng ít bộ nhớ hơn!

Tôi tưởng tượng viết máy chủ của mình trong môi trường như vậy (rất nhanh và đáp ứng, sử dụng bộ nhớ rất thấp, rất biểu cảm) sẽ cải thiện dự án của tôi một cách vô cùng.

Là người mới đến lua, tôi chỉ không chắc chắn nếu một điều như vậy tồn tại. Tôi sẽ đánh giá cao bất kỳ con trỏ.

Cảm ơn

Trả lời

2

Bạn có thể nhận được phong cách Node.js non-blocking IO với lua-handlers.

Nó thậm chí còn không đồng bộ. HTTP Client, giúp dễ dàng bắt đầu các yêu cầu HTTP song song. Xem tệp test_http_client.lua làm ví dụ về giao diện máy khách HTTP.

23

Một dự án tương ứng gần đây là Luvit "(Lua + libUV + jIT = tinh khiết awesomesauce) ".

Từ announcement:

này về cơ bản là luajit2 + libuv (thư viện vòng lặp sự kiện đằng sau nodejs). Nó biên dịch thành một tập tin thực thi giống như nodejs và có thể chạy các tệp .lua. Điều gì làm cho nó khác với phân phối cổ phiếu luajit là nó có một số mô-đun tích hợp được thêm vào và một số ngữ nghĩa hơi khác nhau một chút là .

Lưu ý rằng chúng tôi không chạy dưới dạng tập lệnh CGI thành apache hoặc bất cứ điều gì như thế. Tập lệnh lua máy chủ http. Bạn nhận được cuộc gọi lại được gọi mỗi lần yêu cầu http được gửi đến máy chủ.

3

luvit nhắm đến Lua chính xác Node.js là gì với Javascript. Chắc chắn là một dự án hứa hẹn.

6

Bạn cũng có thể có một cái nhìn tại luv:

https://github.com/richardhundt/luv

khỏi danh sách gửi thư lua:

như thế nào luv liên quan đến Luvit - LuaJIT + libuv (Node.js : s/JavaScript/Lua /)?

Nó không thực sự. Luvit vay mượn rất nhiều từ kiến ​​trúc của node.js (gọi lại lò phản ứng, vv), liên kết tĩnh với luajit, cung cấp hệ thống mô-đun riêng của nó và thực thi. Luv chỉ là một mô-đun Lua mà liên kết với libuv. Điểm khác biệt chính là Luv giống như một động cơ luồng m-n kết hợp các coroutines và hệ điều hành trong khi sử dụng vòng lặp sự kiện lib2 libuv dưới mui xe.

Vì vậy, ngoài thực tế là cả hai đều liên kết với libuv, chúng không có điểm chung.

1

Bạn cũng nên kiểm tra Lapis. Đó là một khung rất nhẹ và nhanh cho OpenResty: http://leafo.net/lapis/

Tôi thực sự thích thú và dự đoán nó sẽ có một tương lai tươi sáng!

Như bạn mong đợi với bất cứ điều gì được xây dựng để tận dụng OpenResty, đó là tiêu chuẩn là điên rồ tốt: https://www.techempower.com/benchmarks/#section=data-r12&hw=peak&test=query

Tác giả của Lapis cũng đã viết một ngôn ngữ CoffeeScript giống như cho Lua gọi MoonScript đó là khá đẹp: http://moonscript.org/