由 XD-DENG
发布于 2020年04月26日
之前用Go+Vue.js实现了一个side project,主要用来解决平时自己经常遇到的一些问题,例如hash,base64 encode/decode,生成随机密码,转换unix time等。在向一个同事提起时,他的第一反应是问我“is it server-side or client-side?”。即如果是server-side,所有的操作都是在服务器端完成再发回给client,那这并不安全,尤其是生成随机密码以及base64 encode(很常见的use case是将含密码的字符串转化为base64,以方便pass给OpenShift那样的环境)。即使使用https来保证传输过程中较低风险,也很难保证服务提供者(例如我)不会悄悄保存用户提交及获取的信息。
最直接的方法当然是使用JS来实现这些功能,这样所有的操作都是在client端浏览器完成。但我并不太熟JS。这时恰好了解到了WebAssembly,这样我就可以继续用Go来实现所有的功能,并且它们能够在JS的环境中执行,我之前的大部分代码也能复用。
当作学习,我试着将我的这个side project用Go + WebAssembly + Vue.js重新实现了一次,https://handytools.xd-deng.com。源代码host在了GitHub上,https://github.com/XD-DENG/handytools-go-webassembly。也许对同样初学WebAssembly的朋友能有一点帮助,也欢迎指正代码中的问题。
(就像上面提到的,对我的这个side project,最优的方案依然是使用JS。使用WebAssembly更多是为了帮助自己了解一些新的东西)
暂无回复
相关帖子
相关新闻
- 使用Amazon Verified Permissions和Amazon Bedrock代理设计安全的生成式AI应用工作流 | Amazon Web Services
- SailPoint如何使用Anthropic的Claude在Amazon Bedrock上自动生成用于SaaS连接器的TypeScript代码 | Amazon Web Services
- AMD 发布 AMD-135M:AMD 第一个小型语言模型系列,使用 670B 令牌在 AMD Instinct MI250 加速器上从头开始训练 - MarkTechPost
- 你会使用人工智能来开发网站吗?这比你想象的要简单得多
- 女性在使用AI健身应用后给私人教练留言