librime-qjs: 为高隐私高定制的 Rime 输入法装上 Javascript 引擎 - V2EX
爱意满满的作品展示区。
shot

librime-qjs: 为高隐私高定制的 Rime 输入法装上 Javascript 引擎

  •  3
     
  •   shot Mar 12, 2025 2728 views
    This topic created in 425 days ago, the information mentioned may be changed or developed.

    librime-qjs: 为 Rime 输入法引擎带来全新的 Javascript 插件生态,以闪电般的速度和羽毛般的轻盈,让输入体验焕然一新!

    功能特性

    • Rime 输入法引擎 带来强大的 Javascript 插件生态。
      • 让 Javascript 尽情发挥,所有 Rime 引擎的精华功能都已为您精心备妥。
      • 看看我们的实力!白霜拼音 的所有 Lua 插件都已完美重写为 Javascript 版本
      • 贴心提供 Javascript 类型定义,让插件开发体验如丝般顺滑。
      • 简单灵活的类型绑定模板,让 Javascript 和 Rime 引擎完美配合。
    • 基于 QuickJS-NG 打造的轻量级 Javascript 引擎。
      • 畅享最新 ECMAScript 特性:正则表达式、Unicode 、ESM 、big number ,应有尽有!
      • 运行速度快得惊人:所有插件均毫秒级响应。
      • 内存占用小得不可思议:<20MB !
    • 为大型词量身打造的 Trie 结构。
      • 词典加载快如闪电:11 万词条的汉译英词典,转为二进制格式后,加载完成仅需 20ms 。
      • 精确查找速如箭矢:11 万词条的汉译英词典,精确查找 200 个汉语词语的英文释义不到 5ms 。
      • 前缀搜索迅如疾风:6 万词条的英译汉词典,搜索前缀匹配的英文单词及其汉语翻译仅需 1~3ms 。
    • 所有 Javascript 插件一次加载到处可用,让输入法会话切换轻松洒脱。
      • 切换输入法时加载大型插件卡顿严重?现在我们一劳永逸!
      • 在不同应用间沉浸式写作?插件早已准备就绪!
    • 双剑合璧:C++ 和 Javascript 的单元测试。
      • 每个 Rime API 都经过严格的 C++ 测试
      • Javascript 插件?随心所欲地用 qjs/nodejs/bun/deno 执行测试
    15 replies    2025-07-08 12:20:52 +08:00
    MHPSY
        1
    MHPSY  
       Mar 12, 2025
    star 感觉很有趣
    luoyou1014
        2
    luoyou1014  
       Mar 12, 2025
    有个疑惑,Rime 类型的仓库,不会有老外看吧,为啥 ReadMe 默认是英文的
    TrembleBeforeMe
        3
    TrembleBeforeMe  
       Mar 12, 2025
    甚至没看懂怎么使用
    Vitta
        4
    Vitta  
       Mar 12, 2025
    成熟的话应该很好用了,这样的话是不是就可以支持 api 请求了
    newdongyuwei
        5
    newdongyuwei  
       Mar 12, 2025
    赞一个! testcases 看着不错。 建议 api 文档再完善一下。
    shot
        6
    shot  
    OP
       Mar 12, 2025
    @luoyou1014 #2

    > 有个疑惑,Rime 类型的仓库,不会有老外看吧,为啥 ReadMe 默认是英文的

    1. 在技术领域,英文表述通常比中文更严谨更精准。
    2. 用英文能避免大陆简体和港澳台繁体的表达差异( Rime 创始人和很多贡献者都不是内地人)。
    3. 据说有基于 Rime 的日文和韩文输入法。
    4. 稍微提高一丢丢技术门槛,也许后面能减少一些不太认真不够严肃的社区噪音。
    shot     7
    shot  
    OP
       Mar 12, 2025
    @Vitta #4

    > 成熟的话应该很好用了,这样的话是不是就可以支持 api 请求了

    如果是说通过网络调用来实现类似「云输入法」的功能,已经有人基于 Lua 插件引擎做过了。
    shot
        8
    shot  
    OP
       Mar 12, 2025
    @Vitta #4

    > 成熟的话应该很好用了,这样的话是不是就可以支持 api 请求了

    如果是说通过网络调用来实现类似「云输入法」的功能,已经有人基于 Lua 插件引擎做过了。

    理论上说,Javascript 插件引擎应该也能做,而且比较 Lua 还有一个优势:充斥宇宙的 npm 库 。
    一个障碍是:quickjs 不一定能无缝使用 nodejs 的类库。这个问题暂时还不在我的计划内。
    DingJZ
        9
    DingJZ  
       Mar 12, 2025
    已 star ,也曾经想过这个方向,可惜不会做哈哈
    luoyou1014
        10
    luoyou1014  
       Mar 12, 2025
    @shot 我就在用基于 Rime 的日语输入法,实际上,用 Rime 输入日语或韩语的还是华人。

    英文表述比中文更严谨更精准是陈年老谣言了,搞 Rime 开发,肯定很懂汉语,不知道为啥写这个
    Rime 本身就是很小众的输入法,在 Rime 上搞插件更是小众中的小众,圈子的门槛已经高到喜马拉雅山了
    考虑到大陆的人员都比较宽容,可以参考 Rime 官网,用繁体中文挺好的,易懂易沟通
    vvhy
        11
    vvhy  
       Mar 12, 2025
    @luoyou1014 繁体中文真的好懂吗,翻译插件基本只能作繁简转换而不是翻译,个人感觉效果比英文还差
    yibie
        12
    yibie  
       Mar 14, 2025
    有没有基于这个开发的新插件,作为一些例子?
    shot
        13
    shot  
    OP
       Mar 14, 2025
    @yibie #12

    > 有没有基于这个开发的新插件,作为一些例子?

    看看我们的实力! 白霜拼音的所有 Lua 插件都已完美重写为 Javascript 版本 。

    https://github.com/HuangJian/rime-frost/tree/hj/js
    whitewatercn
        14
    whitewatercn  
       May 19, 2025

    正在发愁 lua 不熟( js 虽然也没那么擅长

    不知道能做 python 的接口不
    Vitta
        15
    Vitta  
       Jul 8, 2025
    这个需要重新编译 librime 吗
    About     Help     Advertise     Blog     API     FAQ     Solana     1188 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 46ms UTC 23:24 PVG 07:24 LAX 16:24 JFK 19:24
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86