不同版本Lua介绍
luainterface、nlua、ulua、unilua、cstolua、slua
luainterface:LuaInterface是开源的C#的lua桥接库,配合开源库luanet,能轻松实现Lua,C#相互调用和参数事件传递。但作者仅完成了windows程序的功能实现,跨平台并没有完成,作者于2013年4月30日停止更新luainterface,并推荐大家关注luainterface的一个分支Nlua。Nlua是实现跨平台的Luainterface的升级版,uLua和NLua都是基于此库升级编写
nlua:是LuaInterface的一个分支,继承了Luainterface的所有优点,并将Luanet库功能集成到代码中,实现跨平台(Windows, Linux, Mac, iOS , Android, Windows Phone 7 and 8),对ios平台做了特殊处理,如支持了委托的桥接。
配合NLua有2种Lua实现,第一种是KeraLua,基于原生Lua,将C API 进行简单的包装,使C# 可以方便使用 Lua C API,第二种是KopiLua,C#实现的Lua vm(对,和UniLua一样也是纯C#实现的Lua vm)。以下为关于两种方案的比较。
使用KeraLua,必须将lua 编译成 Unity3D Plugin,并将编译好的文件放到Plugins文件夹下相应的平台文件夹中。并定义#define USE_KERALUA
使用KopiLua,定义#define USE_KERALUA即可
ulua:基于luainterface升级版,uLua = Lua + LuaJIT + LuaInterface,全平台支持。在原生C的基础上使用LuaJit进行加速,如果uLua效率高,LuaJit有很大功劳,作者仅仅提供了uLua插件包,并未提供整套插件源码。此外,作者重写了loadfile、print等api,使用非常简单,导入package,就可以开始编写代码了。
unilua:是云风团队阿南的作品,是lua5.2的C#版,
纯C#的Lua 5.2实现,是不是感觉似曾相识,对的,KopiLua也是纯C#实现的Lua vm,虽然Unilua出名,但是没有KopiLua的配套库好用,其自身同的Ffi库,是实验性质的库,不完善,作者不推荐使用,虽然作者在其商业项目中使用,但是这只是其中一部分代码,Unilua和C#中间层的代码作者并没有开源。UniLua仅仅提供了Lua原生的接口,如果要在Lua代码中调用C#,使用就需要把Luanet 移植到Unilua代码中,总的来说很蛋疼,据推测Unilua方法都是使用Lua标准的命名方式,所以将luanet源码中所有C接口全部手动改写成Unilua 的接口,就可以使用,这个工作量,等闲的时候把玩比较好。
cstolua:cstolua是作者对ulua的扩展,提高了效率
slua:也是从ulua扩展而来,官方说效率比cstolua还高,不过也有很多人质疑过 http://www.ulua.org/cstolua.html http://www.slua.net/ http://www.sineysoft.com/post/164
效率
cstolua > ulua > nlua > luainterface > unilua
其他热更新方式:李总的c#light(L#)、JSBinding
不同版本Lua介绍的更多相关文章
- 软件发布版本区别介绍-Alpha,Beta,RC,Release
Alpha: Alpha是内部测试版,一般不向外部发布,会有很多Bug.除非你也是测试人员,否则不建议使用. 是希腊字母的第一位,表示最初级的版本 alpha就是α,beta就是β alpha版就是比 ...
- kafka各个版本特点介绍和总结
kafka各个版本特点介绍和总结 1.1 kafka的功能特点: 分布式消息队列 消息队列的数据模型, 形成流式数据. 提供Pub/Sub方式的海量消息处理.以高容错的方式存储海量数据流.保证数据流的 ...
- Nmap原理02 - 版本探测介绍(上)
Nmap原理02 - 版本探测介绍(上) 1.介绍 本文将介绍如何通过修改或添加nmap-service-probes文件来实现对nmap中未知服务的探测,首先介绍服务和版本探测的相关信息,然后介绍服 ...
- Cocos2d-x 脚本语言Lua介绍
Cocos2d-x 脚本语言Lua介绍 本篇博客记录Lua学习.学习来自eoe论坛,Lua语言开发Cocos2d-x游戏入门视频教程,猛戳下面地址: http://www.eoeandroid.com ...
- Ubuntu各个版本的介绍
Ubuntu的版本比较多,而且基于ubuntu的衍生版也很多,让人容易混淆,也让很多人不知道自己适合哪一个,在这里简单比较一下ubuntu的各个版本的特点: 介绍ubuntu版本之前先说一说与ubun ...
- Linux、GUN/Linux、GUN、GPL以及各个发行版本详细介绍
学习Linux很久了,却对GUN,Linux,Linux发行版等无所了解,是不是觉得很对不起自己啊.呵呵,所以我就在网上找了些资料,总结在一起,还算是比较能说明问题的. 什么是Linux? 也许很多人 ...
- 从头来之【iOS及历史版本特性介绍】
iOS是apple公司的移动操作系统,在iPhone,iPad,iPod中应用,该名最初为Cisco的网络设备操作系统,后授权于Apple公司使用.下面介绍历史版本的特性. iOS1 最大特性是具有其 ...
- Git学习笔记(一) 安装及版本库介绍
安装Git 最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑.不过,慢慢地有人把它移植到了Windows上.现在,Git可以在Linux.Unix.Mac和 ...
- lua介绍及环境搭建(一)
一.介绍 1.简介 Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能. 其设计目的是为了嵌入应用程序中,从 ...
随机推荐
- java thread dump日志分析
jstack Dump 日志文件中的线程状态 dump 文件里,值得关注的线程状态有: 死锁,Deadlock(重点关注) 执行中,Runnable 等待资源,Waiting on conditio ...
- VB中如何修改treeview的背景色
改变 TreeView 的背景 Private Declare Function SendMessage Lib "User32" Alias "SendMessa ...
- vue 笔记一
vue: 读音: v-u-e view vue到底是什么? 一个mvvm框架(库).和angular类似 比较容易上手.小巧 mvc: mvp mvvm mv* mvx 官网:http://cn.vu ...
- cmd获取批处理文件所在路径
在批处理开头加入cd /d %~dp0 一行代码就真真实实地做到“编写一次,到处运行”.%0是批处理文件本身的路径,%~dp进行扩展, d向前扩展到驱动器,p往后扩展到路径.例如,你的bat文件在e: ...
- Redis学习(8)-redis其他特性
消息订阅与发布 subscribe Channel:订阅频道 psubscribe channel*:批量订阅频道:例如:psubscribe S*,订阅以S开头的频道. publish channe ...
- servlet ServletConfig ServletContext
ServletConfig对象 在Servlet的配置文件中,可以使用一个或者多个<init-param>标签为servlet配置一些初始化参数. 当servlet配置了初始化参数后,we ...
- CAS连接微软活动目录的配置方法
原文地址:http://blog.csdn.net/baozhengw/article/details/3857669在微软活动目录中建立一个用户节点,帐号为wangzhenyu,cn为zhenyu ...
- mybatis标签之——关联映射
关联关系是面向对象分析.面向对象设计最重要的知识.合理的关联映射将大大简化持久层数据的访问.关联关系大致分为以下三类: 一对一 一对多 多对多 1. 一对一 一对一关系推荐使用唯一主外键关联,即两张表 ...
- java第四章编程题(初学篇)
代码: /* test.java */ package test; public class test { public static void main(String args[] ) { CPU ...
- python学习笔记——多进程一 基础概念
1 进程 进程:程序的一次(从开始到结束)执行过程,属于一个动态过程.是系统进行资源分配和调度的基本单位. 程序:指的是一个文件,磁盘中可执行的代码.属于一个静态文件 注:进程运行时需要把程序加载如内 ...