Unity3d lua name slua with 3rd library
Clone or download
#1 Compare This branch is 141 commits ahead, 406 commits behind pangweiwei:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.


#slua 3rd library. Fastest Unity lua binding via static code generating.

Introduction slua Document

###What's different This fork integrate with 3rd Lua library.

We already have pbc , lpeg , cjson , lua-socket , sproto , sqlite librarys and more and more in the future.

The library is already been test in Mac , Iphone , Android , Windows.

Website: http://www.luzexi.com

Email: jesse_luzexi@163.com


###MinGW for windows build MinGW , a contraction of "Minimalist GNU for Windows", is a minimalist development environment for native Microsoft Windows applications.

MinGW be a submodule in this repo and about 300 MB , If you have to build dll in windows you must init and update the submodule like : git submoudle update --init.

###About 3rd library 1.pbc (https://github.com/cloudwu/pbc) is a google protocol buffers library for C without code generation.

2.lpeg (http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html) is a new pattern-matching library for Lua, based on Parsing Expression Grammars (PEGs).

3.lua-cjson (http://www.kyne.com.au/~mark/software/lua-cjson.php) provides JSON support for Lua.

4.lua-socket (http://w3.impa.br/~diego/software/luasocket/home.html) is a Lua extension library that is composed by two parts: a C core that provides support for the TCP and UDP transport layers, and a set of Lua modules that add support for functionality commonly needed by applications that deal with the Internet.

5.sproto (https://github.com/cloudwu/sproto) is an efficient serialization library for C, and focuses on lua binding. It's like Google protocol buffers, but much faster.

6.sqlite (https://github.com/LuaDist/lsqlite3) is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine.

##How to use slua in unity3d. See inner demo for help or Document (in chinese).

##How to use 3rd library in unity3d. See inner demo for help.

  • pbc example

The path of pbc example is Assets/Slua/example/example-pbc/protoTest.unity.

To integrate pbc I add ByteArray class in slua. It works when you use byte[] between c# and Lua.

  • lua-cjson example

The path of lua-cjson example is Assets/Slua/example/example-cjson/cjson_test.unity.

Test scripts include cjson_test.cs , cjsonTest.txt , cjsonTest/test1.txt.

  • lua-socket example

The path of lua-socket example is Assets/Slua/example/example-luasocket/lua_socket.unity.

The test scripts is 'testclnt.txt'. The test file copy from lua-scoket. If you wana test, you need to run the 'luasrvr.lua' from the lua-scoket's test folder.

  • sproto example

The path of sproto example is Assets/Slua/example/example-sproto/sproto-test.unity.

The test contain 3 files sprotoTest/test.txt , sprotoTest/testall.txt , sprotoTest/pbc.txt , all of these files from sproto project.

  • sqlite example

The path of sproto example is Assets/Slua/example/example-sqlite/sqlite-test.unity.

The test contain 2 files sqliteTest/test.txt , sqliteTest/tests-sqlite3.txt , all of them from lsqlite project.

###How to build library by yourself. It has sevral shell or bat in the build folder. If you have to choose some of theirs , you can modify the build scripts by yourself. It's simple I think if you really want.

The shell or bat in the build folder can build the library for specially platform:

1.make_ios.sh will build iphone library in osx.

2.make_osx.sh will build osx library in osx.

3.make_android.sh will build android library. You can execute it in osx or linux. But first , please reset the ndk path in the shell.

4.make-windows-32.cmd will build windows 32bit dll in windows 32-bit or 64-bit.

5.make-windows-64.cmd will build windows 64bit dll in windows 64-bit.

###TODO 1.Add lua-cjson library in slua. ( Finished )

2.Add lua-socket library in slua. ( Finished )

3.Merge slua v1.x ( Finished )

4.Add sproto library in slua. ( Finished )

5.Add sqlite library in slua. ( Finished )

6.Add Int64 in slua.

7.Add curl library in slua.