A lua framework which base on golang, support Redis pub/sub, ZeroMQ, HTTP, Event and Real-time hot reload.
-
aes256 - AES-256 encryption and decryption.
-
base64 - Base64 encoding and decoding.
-
json - JSON encoding and decoding.
-
md5 - MD5 hash funtion.
-
uuid - UUID generator.
-
bit32 - 32 bit shifting.
-
bit64 - 64 bit shifting.
-
event - Event module for subscribing loop、delay events.
-
http - HTTP module for sending Http Request.
-
logger - Logger module for logging.
-
redis - Redis module to comminucate with redis sever, support pub/sub.
-
zmq (Optional build) - ZeroMQ module to create router and dealers.
-
Real-time hot reload - Support for lua hot reload when files changed.
A quick demostration of this framework can be found under example directory.
cd example && go run main.go
When launched you'll see each runtime informations in console output.
2023-05-08T14:54:20.449+0200 INFO runtimelua/scripts.go:364 Watching runtime directory {"vm": 0, "path": "/Users/user/runtimelua/example/script"} 2023-05-08T14:54:20.450+0200 DEBUG runtimelua/runtime.go:120 Runtime information {"vm": 0, "load": ["table", "os", "io", "string", "math", "coroutine", "package"]} 2023-05-08T14:54:20.450+0200 DEBUG runtimelua/runtime.go:123 Runtime information {"vm": 0, "preload": ["runtime", "json", "bit32", "base64", "event", "logger"]} 2023-05-08T14:54:20.451+0200 INFO runtimelua/scripts.go:364 Watching runtime directory {"vm": 1, "path": "/Users/user/runtimelua/example/script"} 2023-05-08T14:54:20.451+0200 DEBUG runtimelua/runtime.go:120 Runtime information {"vm": 1, "load": ["math", "coroutine", "package", "table", "os", "io", "string"]} 2023-05-08T14:54:20.451+0200 DEBUG runtimelua/runtime.go:123 Runtime information {"vm": 1, "preload": ["runtime", "json", "bit32", "base64", "event", "logger"]}
ZeroMQ require extra libraries dependency, so it's optional.
go build -tags zmq
Contributions are always welcome.
This project is licensed under the Apache-2 License.
If you like my project and also appericate for the effort. Don't hesitate to buy me a coffee😊.