随笔分类 -  JavaScript runtime

some JavaScript runtime for learning
xk6 构建原理说明
摘要:xk6 是基于了caddyserver 的一个构建工具,实际上原理上不难,依赖了golang 的一些工具包 比如go mod,go get,go build 参考main代码 类似db的模块注册,然后引入依赖的模块 模块的开发 有介绍过,就是一个module 的注册,将go 对象暴露为goja 的o 阅读全文

posted @ 2021-01-16 18:46 荣锋亮 阅读(798) 评论(0) 推荐(0) 编辑

cratedb 集成graphjin 尝试(木有成功)
摘要:graphjin 是一个很不错的graphql engine(library),因为cratedb 兼容pg协议,所以以下是一个简单的 集成尝试 环境准备 cratedb 环境 version: "3" services: db: image: dalongrong/cratedb:4.4.0 po 阅读全文

posted @ 2021-01-10 19:15 荣锋亮 阅读(359) 评论(0) 推荐(0) 编辑

k6 集成goja 的部分集成说明
摘要:k6 对于goja 的集成还是比较强大的,支持了es6(基于babel 的编译能力),同时对于默认的js engine 进行了扩展(基于core-js) 同时对于require以及module ,exports 也是支持的,只是对于exports 是自己定义了变量,同时对于一些内置的模块(k6 开头 阅读全文

posted @ 2021-01-05 16:30 荣锋亮 阅读(1067) 评论(0) 推荐(0) 编辑

java 使用js 引擎处理业务逻辑
摘要:一个比较简单的demo,就是基于java 内置的js 引擎,扩展业务逻辑代码,实现一个xml 解析的 项目结构 代码简单说明 就是js 中使用了jackson xml 处理,同时获取xml 数组的第一个,转换为book 对象,方便业务处理 pom.xml <?xml version="1.0" en 阅读全文

posted @ 2020-10-27 19:41 荣锋亮 阅读(1345) 评论(0) 推荐(0) 编辑

ClearScript 微软开源的js 引擎
摘要:ClearScript 实际上属于一个老项目了,只是最近微软迁移到github了,同时也增强了跨平台的支持(linux,mac) 对于基于.net 系列的软件开发是比较方便了,当然目前和graalvm 的js 引擎相比还是比较弱的 ,比较期待微软能 有更好的提升 目前支持的特性 js 与.net o 阅读全文

posted @ 2020-10-19 13:06 荣锋亮 阅读(2321) 评论(0) 推荐(0) 编辑

graalvm js 内置commonjs 模式试用
摘要:昨天有大概介绍过graalvm 对于commonjs 的支持,以下是简单的试用说明 环境准备 pom.xml 依赖配置 <dependency> <groupId>org.graalvm.truffle</groupId> <artifactId>truffle-api</artifactId> < 阅读全文

posted @ 2020-08-31 13:28 荣锋亮 阅读(1174) 评论(0) 推荐(0) 编辑

graalvm js 与java 类型转换的一些方法
摘要:在基于跨不同语言的通信开发中,数据类型的转换是一个很大的部分,目前来说graalvm 对于java host 类型与js 对象类似的转换还是不够好 java host 对象到js 的操作我们可以通过ProxyObject 以及提供的HostAccess 注解处理 参考模式 js 到java 对象转换 阅读全文

posted @ 2020-08-31 13:26 荣锋亮 阅读(1570) 评论(0) 推荐(0) 编辑

graalvm java map 参数传递js 方法调用
摘要:因为js 有自己的特性,我们一般对于map 参数的传递通过ProxyObject.fromMap 处理,以下是一个demo 基本使用 参考代码 public static void es6Rollup2(Engine engine) throws IOException { Context cont 阅读全文

posted @ 2020-08-30 15:18 荣锋亮 阅读(1436) 评论(0) 推荐(0) 编辑

graalvm 内置require 模块的开启
摘要:实际上graalvm 包含了体验特性的require 支持(commonjs) 配置说明 Map<String, String> options = new HashMap<>(); // Enable CommonJS experimental support. options.put("js.c 阅读全文

posted @ 2020-08-30 13:25 荣锋亮 阅读(597) 评论(0) 推荐(0) 编辑

Calling out from Java to JavaScript (with call back) – leveraging interoperability support of GraalVM
摘要:一篇很不错的java js 调用的文章,参考连接:https://technology.amis.nl/2019/10/24/calling-out-from-java-to-javascript-with-call-back-leveraging-interoperability-support- 阅读全文

posted @ 2020-08-30 10:49 荣锋亮 阅读(154) 评论(0) 推荐(0) 编辑

使用rollup 转换commonjs 模块为es6 模块,方便的支持graalvm 模块兼容
摘要:graalvm 是直接支持es6模块的,以前有写过基于require 模块模式的npm包加载处理(jvm-npm)以下是我们 基于rollup 转换comomjs 模块为es6 模块,方便的扩展java 的能力 场景说明 npm 包含了一个很不错的json-mask 包,但是我们希望java可以直接 阅读全文

posted @ 2020-08-30 09:57 荣锋亮 阅读(2821) 评论(0) 推荐(0) 编辑

使用 jvm-npm 解决 graalvm js common js 模块加载问题
摘要:jvm-npm 是一个很不错的js hack,可以方便的用来解决 java js 引擎的 的npm 问题,以下是一个使用说明 代码说明 项目结构 使用代码 init 主要是npm common 机制的hack public static void init(Engine engine,Context 阅读全文

posted @ 2020-08-27 20:36 荣锋亮 阅读(752) 评论(0) 推荐(0) 编辑

使用webjars + graalvm js 引擎增强业务处理
摘要:机制上比较简单,webjars 是利用了web 容器对于资源解析的特性 META-INF/resources 会自动解析处理,而且我们可以基于此模式实现js 的方便 打包以及版本化管理(这点webjars的设计比较到位),以下是一个简单的尝试,基于 graalvm js 的能力 我们可以比较灵活的扩 阅读全文

posted @ 2020-08-27 17:43 荣锋亮 阅读(470) 评论(0) 推荐(0) 编辑

graalvm js Promise 使用
摘要:graalvm 对于js 的处理也是支持Promise 的,但是我们的java 对象需要实现PromiseExecutor 接口 接口定义 这个是官方文档的说明,但是实际没找到,变通方法可以通过BiConsumer 解决 @FunctionalInterface public interface P 阅读全文

posted @ 2020-08-27 11:10 荣锋亮 阅读(633) 评论(0) 推荐(0) 编辑

graalvm js 加载远端js 文件
摘要:graalvm js 支持了基于远端模式的js 文件加载(当然是处于实验阶段的,生产谨慎使用),以下是一个简单的demo 环境准备 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.o 阅读全文

posted @ 2020-08-27 10:58 荣锋亮 阅读(1203) 评论(0) 推荐(0) 编辑

使用browserify 解决 graalvm js 引擎加载js 模块的问题
摘要:browserify 可以实现模块化处理,同时合并依赖在一个文件中,有好处也有坏处,以下是一个尝试 环境准备 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0. 阅读全文

posted @ 2020-08-26 20:48 荣锋亮 阅读(626) 评论(0) 推荐(0) 编辑

java graalvm js 引擎加载js 模块试用
摘要:graalvm 支持mjs 模块的加载,以下是一个简单的学习demo 环境准备 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="h 阅读全文

posted @ 2020-08-26 20:31 荣锋亮 阅读(4265) 评论(0) 推荐(0) 编辑

java 集成graalvm js 引擎
摘要:java 内置的js 引擎nashorn已经是被淘汰的,oracle 比较推荐的是使用graalvm js,以下是一个简单的集成试用 环境准备 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.ap 阅读全文

posted @ 2020-08-26 17:35 荣锋亮 阅读(3777) 评论(0) 推荐(0) 编辑

es4x 调用其他三方jar 包
摘要:es4x 使用了graalvm 作为运行时环境,所以即拥有vertx 的强大,又拥有了与java 代码便捷的通信能力 以下是一个简单的测试,同时也简单说明下es4x 的es4x-launcher.jar 的生成 简单jar 包 使用maven 构建,没有什么特殊的 pom.xml <?xml ver 阅读全文

posted @ 2019-11-21 17:07 荣锋亮 阅读(729) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示