https://github.com/vlorc/lua-vm
Golang lua virtual machine
https://github.com/vlorc/lua-vm
go golang-library lua vm
Last synced: about 1 month ago
JSON representation
Golang lua virtual machine
- Host: GitHub
- URL: https://github.com/vlorc/lua-vm
- Owner: vlorc
- License: apache-2.0
- Created: 2018-09-11T06:14:57.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-04-11T03:57:43.000Z (almost 5 years ago)
- Last Synced: 2024-06-19T05:44:27.188Z (almost 2 years ago)
- Topics: go, golang-library, lua, vm
- Language: Go
- Homepage:
- Size: 63.5 KB
- Stars: 8
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# [Golang lua-vm](https://github.com/vlorc/lua-vm)
[简体中文](https://github.com/vlorc/lua-vm/blob/master/README_CN.md)
Golang lua minimum project
[](https://opensource.org/licenses/Apache-2.0)
[](https://codebeat.co/projects/github-com-vlorc-lua-vm-master)
[](https://goreportcard.com/report/github.com/vlorc/lua-vm)
[](https://godoc.org/github.com/vlorc/lua-vm)
[](https://travis-ci.org/vlorc/lua-vm?branch=master)
[](https://coveralls.io/github/vlorc/lua-vm?branch=master)
# Library
+ bit
+ buffer
+ crypto
+ fs
+ hash
+ io
+ net
+ regexp
+ store
# Features
+ http/sock5 proxy
+ lua pool
+ file system
## Installing
go get -u github.com/vlorc/lua-vm
## Quick Start
* Create Pool
```golang
pool.NewLuaPool()
```
* Preload Script
```golang
pool.NewLuaPool().Preload(
pool.Source(strings.NewReader("print('hello')")),
pool.Value("tobuffer", base.ToBuffer),
)
```
## Examples
* Use tcp
```golang
import (
"github.com/vlorc/lua-vm/pool"
"github.com/vlorc/lua-vm/net/tcp"
"github.com/vlorc/lua-vm/net/base"
)
func main() {
p := pool.NewLuaPool().Preload(
pool.Module("net.tcp", tcp.NewTCPFactory(driver.DirectDriver{})),
pool.Module("buffer", base.BufferFactory{}),
)
if err := p.DoFile("demo/tcp.lua"); nil != err {
println("error: ", err.Error())
}
}
```
## Lua Demo
+ [tcp](https://github.com/vlorc/lua-vm/blob/master/demo/tcp.lua)
+ [udp](https://github.com/vlorc/lua-vm/blob/master/demo/udp.lua)
+ [dns](https://github.com/vlorc/lua-vm/blob/master/demo/dns.lua)
+ [http](https://github.com/vlorc/lua-vm/blob/master/demo/http.lua)
+ [time](https://github.com/vlorc/lua-vm/blob/master/demo/time.lua)
+ [crypto](https://github.com/vlorc/lua-vm/blob/master/demo/crypto.lua)
+ [regexp](https://github.com/vlorc/lua-vm/blob/master/demo/regexp.lua)
+ [bit](https://github.com/vlorc/lua-vm/blob/master/demo/bit.lua)
+ [file](https://github.com/vlorc/lua-vm/blob/master/demo/file.lua)