JavaScript 引擎开源项目

来源:互联网 发布:石油钻井英语翻译软件 编辑:程序博客网 时间:2024/06/07 18:04

JS引擎能够解析JS脚本,通常被依附于浏览器中,例如Safari所使用的JavaScriptCore、Google Chrome所使用的V8和FireFox所使用的SpiderMonkey等等。也被用作移动端的跨平台开发,例如NativeScript在iOS端和Android分别使用了JavaScriptCore和V8,ReactNative则都使用了JavaScriptCore。

V8 — 开源,由Google开发,用C++编写的
https://github.com/v8/v8
V8 最早被开发用以嵌入到 Google 的开源浏览器 Chrome 中,但是 V8 是一个可以独立的模块,完全可以嵌入您自己的应用,著名的 Node.js( 一个异步的服务器框架,可以在服务端使用 JavaScript 写出高效的网络服务器 ) 就是基于 V8 引擎的。

在Android开发中,相关接口需要通过一层包装进行调用,J2V8是一套针对V8的Java绑定。J2V8的开发为Android平台带来了高效的Javascript的执行环境,其以性能与内存消耗为设计目标。它采用了“基本类型优先”原则,意味着一个执行结果是基本类型,那么所返回的值也就是该基本类型。它还采用了“懒加载”技术,只有当JS执行结果被访问时,才会通过JNI复制到Java中。
https://github.com/eclipsesource/J2V8

J2V8的团队开发的一套移动端跨平台框架Tabris.js,支持Android和iOS平台,又于近期宣布支持Windows 10。该框架旨在编写一份JavaScript代码,而能生成Android和iOS两个平台的本地应用。它在Android上使用了J2V8作为JS引擎方案,在iOS上使用系统自带的JSCore。
https://tabrisjs.com/

Rhino — 由Mozilla基金所管理,开源,完全用Java开发
https://github.com/mozilla/rhino

SpiderMonkey —第一个JavaScript引擎,最早用在Netscape Navigator上,现在用在Firefox上。
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey

JavaScriptCore — 开源,以Nitro销售,由苹果公司为Safari开发
JavaScriptCore是一个在WebKit中提供JS引擎的开源框架,由于其使用C语言编写,因此在Android开发中并不能直接使用。
https://github.com/WebKit/webkit/tree/master/Source/JavaScriptCore
Github上的开源项目AndroidJSCore能够帮助开发者经过调用Java接口而使用JavaScriptCore。
https://github.com/ericwlange/AndroidJSCore

在iOS、Android的模拟器或是真机上,React Native使用的是JavaScriptCore,也就是Safari所使用的JavaScript引擎。

Weex 的 iOS 和 Android 客户端中都会运行一个 JavaScript 引擎,来执行 JS bundle,同时向各端的渲染层发送规范化的指令,调度客户端的渲染和其它各种能力。在 iOS 下Weex选择了 JavaScriptCore 内核,而在 Android 下选择了 UC 提供的 v8 内核。无论是从性能还是稳定性方面都提供了强有力的保障。

微信小程序运行在三端:iOS、Android 和 用于调试的开发者工具;在 iOS 上,小程序的 javascript 代码是运行在 JavaScriptCore 中;在 Android 上,小程序的 javascript 代码是通过 X5 内核来解析;在开发工具上, 小程序的 javascript 代码是运行在 nwjs(chrome内核) 中

KJS —KDE的引擎最初由Harri Porten开发,用于KDE项目的Konqueror浏览器
https://github.com/kframework/javascript-semantics

Chakra (JScript9) — Internet Explorer
https://github.com/Microsoft/ChakraCore

Chakra (JavaScript) — Microsoft Edge

Nashorn— 开源为OpenJDK的一部分,由Oracle的Java语言和工具组开发
Nashorn由Oracle开发并维护,从JDK 8开始,Rhino被Nashorn代替,成为JDK默认JS引擎。Nashorn同JDK 8一同发布和开源,较Rhino而言性能更好,但不支持Android Dalvik虚拟机。

JerryScript —  是用于物联网的轻量级引擎
https://github.com/jerryscript-project/jerryscript

原文链接

http://www.zcfy.cc/article/how-javascript-works-inside-the-v8-engine-5-tips-on-how-to-write-optimized-code-4033.html?t=new

https://neyoufan.github.io/2016/12/23/android/Android%20Js%E5%BC%95%E6%93%8E/%E5%9C%A8Android%E4%B8%8A%E4%BD%BF%E7%94%A8JS%E5%BC%95%E6%93%8E%E6%98%AF%E4%B8%80%E7%A7%8D%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E4%BD%93%E9%AA%8C%EF%BC%9F/

https://www.ibm.com/developerworks/cn/opensource/os-cn-v8engine/index.html

https://weex.apache.org/cn/guide/intro/how-it-works.html

http://www.jianshu.com/p/fe7a8737680f

原创粉丝点击