wasm-opencc开放中文转换OpenCC的wasm版本。

这个项目对OpenCC进行了添加修改修改,并利用Emscripten进行编译,在OpenCC进行中文简繁体转换的能力上具有以下特性:可在浏览器环境中直接运行。

在node,eletron中运行不需要再进行addon编译,避免复杂的addon部署工作。理论上应该也可以在React Native和Web Worker中运行(未经测试)。

分离了字典数据的加载和文本转换功能,在浏览器中只加载必要的字典数据,并允许自定义数据加载方式,方便从CDN上加载数据。

开发后的一些想法

OpenCC很好,但遗憾的是我们必须开个服务才能使用,而我先前一直想在浏览器上直接运行,对页面的文本直接进行转换。而后发现tesseract.js是使用Emscripten编译而成,对wasm相关技术的成熟度感到意外,于是便有了这个项目。

在之前,我对wasm最关注的一点是现在Emscripten/WebAssembly是否足够成熟了呢?如果你期望的是开箱即用,文档社区支持齐全(文档其实比较齐全,只是在碰到问题搜索对应文档时容易遇到困难),不会碰到太多问题的工具的话,我的想法是“没有”。你当然需要了解c/cpp和构建工具,并且我碰到了很多问题,特别是内存操作的问题,Emscripten会抛出一个错误数字,没有其他任何错误信息,定位非常困难。或许有类似gdb、lldb的工具帮助解决这些问题,只是我目前不知道。

但如果你理解WebAssembly本身要解决的问题并不容易,并且愿意投入时间去面对这些问题的话,我想你在开发完一个项目以后会觉得Emscripten比你在使用前所想象的更加成熟一些。我开发完这个项目后,目前没有测试出内存相关的问题(当然本身是js运行环境,这点或许不值得一提);在把碰到的几个问题解决或避开以后,其他大部分代码都没有出现问题,剩下的就只是纯粹js领域的封装调用了。

另外,一开始我没有打算提供node版本的代码,因为@byvoid自己早就做了addon的版本。但后来想到自己在开发addon上经历过的问题,深知addon在维护和部署上的困难,就一并生成了一份在node运行的版本。所以我觉得在node环境上,即便已经有了addon这套调用c/cpp的机制,wasm也依旧具有优势。因为你可以用更短的时间,开发出不需要编译、能运行在浏览器上的版本,同时还不用理解v8.h、node.h、Nan,只需要学习相对简单的多得多的Embind就可以了。

回头来看,WebAssembly最大的优势诚如其文档所言,你可以直接将生成llvm的项目运行在js环境下,这点和node addon同理。如果单纯是从应用的性能问题考虑使用相关技术工具的话,还是要慎重抉择。

node 简繁体转换_编译了wasm版本的OpenCC,在浏览器上直接转换简繁体相关推荐

  1. 让VC编译的Release版本程序在其他机器上顺利运行

    让VC编译的Release版本程序在其他机器上顺利运行 Posted on 2011-07-29 15:06 单鱼游弋 阅读(939) 评论(0) 编辑 收藏 链接的时候分静态链接和动态链接两种. 静 ...

  2. java项目运行在浏览器_在 Java 程序中,能在 WWW 浏览器上运行的是 程序。_学小易找答案...

    [简答题]已知:如图, AD 是△ ABC 的角平分线, DE//AC, 交 AB 于点 E , DF//AB ,交 AC 于点 F ,求证: AD ⊥ EF. [简答题]Java语言具有较好的安全性 ...

  3. macbook视频格式转换_一键视频格式转换器for Mac-一键视频格式转换器Mac版下载 V6.3.37-PC6苹果网...

    一键视频格式转换器Mac版是Mac电脑上的一款最好用的视频格式转换器之一.一键视频格式转换器Mac版是一款快速.简单.免费的视频转换器. 软件特色 一键视频格式转换器Mac版作为一款免费视频转换器软件 ...

  4. macbook视频格式转换_‎Mac App Store 上的“一键视频格式转换器”

    一键视频转换器 - 快速.简单.免费的视频转换器. 这个免费视频转换器软件可以转换几乎所有的视频/音频文件格式,如MTS,M2TS,TS,TRP,MP4,MOV,M4V,MKV,AVI,WMV,FLV ...

  5. 编译技术:正规式、NFA、DFA、最简DFA的转换

    正规式.NFA.DFA.最简DFA的转换 在编译原理中,正规式.NFA(非确定有穷自动机).DFA.最简DFA的转换在词法分析中是十分重要的一个环节. 一般来说:我们经常碰到的问题类型都是如下类型的: ...

  6. node.js使用手册_权威的Node.js手册

    node.js使用手册 Note: you can get a PDF, ePub, or Mobi version of this handbook for easier reference, or ...

  7. Node.js Web开发_第二章(2)

    电子书推荐 Digital Forensics with Kali Linux, 2nd Edition Debugging CSS Practical Entity Framework Core 6 ...

  8. c++ 禁止 unsigned 和 signed 转换_令人头疼的C++复杂的类型转换,我们如何来攻克?我来让你头脑清醒...

    不同的数据在计算机内存中的存储方式不同,导致了"类型"这一抽象概念的出现. 对于一个变量而言,其必须要回答三个问题: 1. 在哪可以访问到这个变量的起点? 2. 从起点向后需要读取 ...

  9. 高通Android智能平台环境搭建_编译流程分析

    高通Android智能平台环境搭建_编译流程分析 高通平台环境搭建,编译,系统引导流程分析 TOC \o \h \z \u 1. 高通平台android开发总结. 7 1.1 搭建高通平台环境开发环境 ...

最新文章

  1. CPU调度(CPU Scheduling)
  2. Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 4. 函数
  3. 多线程面试题系列(12):多线程同步内功心法——PV操作上
  4. JDBC原理之层次结构
  5. 前端学习(1681):前端系列实战课程之让蛇动起来
  6. Requests 入门
  7. 《html5 从入门到精通》读书笔记(三)
  8. git21天打卡day20-合并分支
  9. 面向对象(C#)相关理论知识点
  10. 安装Python报错could not write value to key.....
  11. 【LeetCode 1240】 Tiling a Rectangle with the Fewest Squares
  12. 网络和计算机加密解密感叹号,网络连接显示感叹号但是能上网怎么办 网络连接显示感叹号原因【图文】...
  13. vue导致页面白屏几种情况
  14. 【Android】RecyclerView的好伴侣:详解DiffUtil
  15. WordPress 函数大全
  16. ubuntu 自定义开机画面
  17. 【LeetCode】334. 递增的三元子序列
  18. IP地址,域名,服务器
  19. PDFgetXPDFgetN 软件分享
  20. touchgfx视频教程

热门文章

  1. C#发现之旅 --- WinForm.NET中开发具有固定背景图片的可滚动控件
  2. java美食网站设计与实现_毕业设计 基于JAVA的美食娱乐分享网站的设计与实现
  3. python学习(26)分析ajax请求抓取今日头条cosplay小姐姐图片
  4. qq小程序图片和文字安全检测(文字和图片安全检测)
  5. Vue+Spring Boot 前后端分离的商城项目开源啦!
  6. 嵌入式linux/android alsa_aplay alsa_amixer命令行用法
  7. Java web00
  8. CloseableHttpClient read time out
  9. 用好collections模块,对李白诗集进行字频统计
  10. 解决报错Uncaught ReferenceError: $ is not defined at index.html