Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ceifa/demoon
Lua + Node = demoon
https://github.com/ceifa/demoon
Last synced: 18 days ago
JSON representation
Lua + Node = demoon
- Host: GitHub
- URL: https://github.com/ceifa/demoon
- Owner: ceifa
- License: mit
- Created: 2021-04-07T14:56:06.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-02-21T14:53:06.000Z (over 1 year ago)
- Last Synced: 2024-10-07T06:06:30.309Z (about 1 month ago)
- Language: JavaScript
- Homepage:
- Size: 24.4 KB
- Stars: 68
- Watchers: 6
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# demoon
You love Lua but the runtime API is very weak and you don't want to handle and learn a lot of different luarock libraries? You came at the right place! This project aims to offer the bests of **Lua** and **NodeJS** together.
> Don't use this in production!
## Usage
You don't need `lua` installed to run demoon, but you need `node` and npm as well, firstly, install demoon globally:
```sh
$: npm i -g demoon
```Then run it passing your entry lua file:
```sh
$: demoon app.lua
```## Example
This is a little sample code to demonstrate how demoon is powerful and bridges well with nodeJS:
```lua
-- you can require node modules (package.json/node_modules works as well)
local http = require('http')-- you can require js modules and lua files
-- require('./myjsmodule.js')
-- require('./myluamodule.lua')local port = os.getenv('PORT') or 8080
function sleep(ms)
-- you can use and create promises
return Promise.create(function(resolve)
setTimeout(resolve, ms)
end)
end-- top level await works!
sleep(1000):await()http.createServer(async(function (req, res)
-- you can await inside async bounded functions
sleep(1000):await()res:write('Hello World!')
res['end']()
end)):listen(port)print('Your server is running on port ' .. port .. '!')
```