Skip to content

feat(kotlin): 多语言、专项测试、发布线与文档(#390) - #500

Merged
eric8810 merged 2 commits into
mainfrom
feat/kotlin-tests
Oct 19, 2026
Merged

eric8810 merged 2 commits into
mainfrom
feat/kotlin-tests

Conversation

@eric8810

Copy link
Copy Markdown
Contributor

Kotlin SDK K-P1 的最后一部分(前两部分 #492、#498 已合并)。

内容

  • 多语言(multilang 的 Kotlin 列,crates/rutis-loader/tests/multilang_kotlin.rs,同 multilang_go.rs 自成一文件):Kotlin、Node、Python 叶子插件同时冷启动并互相使用服务(Node、Python 同步调用 Kotlin 时 Kotlin 回调它们);同进程的服务是提供者对象本身;没声明的服务被通告、按名字使用;code / data 从 Kotlin 到 JavaScript(大整数为 bigint);撤下 Kotlin 提供者先停它的使用者;inject 门控 Kotlin 插件;两个 Node 运行时经 Kotlin 交叉同步调用时,宿主以 SyncWaitCycle 拒绝闭合等待环的调用,其余完成。
  • 专项(crates/rutis-bridge/tests/kotlin_runtime.rs):没有 events-v2 的宿主被拒绝(原文 rutis: refused: incompatible (this host does not declare events-v2 …); stopping、状态 1、只发问候);错误 code / data 两个方向与再抛;调用方的行(两行各按自己的 isolate 调用,宿主看到调用的行,共享租约的不点名);丢弃的异步调用取消方法的协程。
  • scripts/train.mjs:Maven io.github.arcships:rutis 的版本(kotlin/rutis/gradle.properties 与 Rutis.VERSION)进发布线,暂不发布到 Maven Central;docs/release 写明发版时一起改。
  • 文档(中英):kotlin/README;插件 API 指南的声明、事件写法、十种值三张表加 Kotlin 列;设计稿状态更新并加 §十二 K-P1 实现记录。
  • CI:runtimes-kotlin 加 kotlin_runtime 与 multilang_kotlin。

与设计的出入(设计 §十二)

  • 写帧由单独的写线程完成(插件线程会被中断,中断写 SocketChannel 的线程会关闭通道)。
  • 被行卸载取消、分发仍在进行的监听器以"没有结果"结束(被取消的协程不能正常返回值)。
  • RUTIS_CHANNEL_TOKEN 读取后不能从环境删去(JDK 无此 API)。
  • Android 主线程上的阻塞调用检查随 RutisApp 放到 K-P2。
  • 多语言列放在 multilang_kotlin.rs,不改其他语言共用的 multilang.rs。

验证(本机)

multilang_kotlin 5 项、kotlin_runtime 4 项通过;node scripts/train.mjs 通过;clippy、fmt 干净。

Closes #390

Kotlin SDK K-P1 的最后一部分:

- 多语言(multilang 的 Kotlin 列,crates/rutis-loader/tests/multilang_kotlin.rs):
  Kotlin、Node、Python 的叶子插件同时冷启动并互相使用服务(Node、Python
  同步调用 Kotlin 时 Kotlin 回调它们);同进程的服务是提供者的对象本身;
  没声明的服务被通告并按名字使用;code / data 从 Kotlin 到 JavaScript;
  撤下 Kotlin 提供者先停下它的使用者;inject 门控 Kotlin 插件;两个 Node
  运行时经 Kotlin 交叉同步调用时,宿主以 SyncWaitCycle 拒绝闭合等待环的调用,
  其余完成。
- 专项(crates/rutis-bridge/tests/kotlin_runtime.rs):没有 events-v2 的宿主
  被拒绝(原文、状态 1、只发问候);错误的 code / data 两个方向与再抛;
  调用方的行(两行按各自 isolate 的服务 id 调用,宿主看到调用的行);
  丢弃的异步调用取消方法的协程。
- scripts/train.mjs:Maven 坐标 io.github.arcships:rutis 的版本
  (kotlin/rutis/gradle.properties 与 Rutis.VERSION)进发布线;
  docs/release 写明发版时一起改。
- 文档:kotlin/README(中英);插件 API 指南的声明、事件写法、十种值三张
  表加 Kotlin 列;设计稿记下 K-P1 的实现记录(§十二)。
- CI:runtimes-kotlin 加 kotlin_runtime 与 multilang_kotlin。

Closes #390
@eric8810 eric8810 added this to the 0.14 milestone Oct 19, 2026
@eric8810
eric8810 merged commit 5344005 into main Oct 19, 2026
64 of 66 checks passed
@eric8810 eric8810 modified the milestones: 0.14, 0.15 Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Kotlin K-P1:SDK 核心(jvm target)

1 participant