我用 Rust 写了个 WASM Blog

2022-06-11 16:41:18 +08:00
 zzhbbdbbd

(部署在 Vercel ,国内节点可能有点稀缺,挂上梯子访问更加喔)

上线没有多久,也欢迎各位 V 友像素眼勘查 bug

https://github.com/zzhack-stack/zzhack/issues

也欢迎各位 V 友交流技术心得,换友链的原贴在这里

3229 次点击
所在节点    分享创造
47 条回复
bs10081
2022-06-12 14:13:49 +08:00
不知道為啥,在 macOS 上 Edge 沒辦法加載畫面,Safari 和 Chrome 則正常

網頁很流暢,速度很快!
zzhbbdbbd
2022-06-12 14:30:05 +08:00
@bs10081 可能跟 wasm 的支持有关,这个网站是一个 wasm 应用,渲染计算是 wasm 来做的,只有跟 DOM 有关( commit 部分)的部分是 js
codehz
2022-06-12 15:54:57 +08:00
(看标题我还以为是说在 rust 里用 webgl/webgpu 渲染画面呢(
个人认为这里应该没啥性能优势——有的话就是原本 js 做的太烂(主要是 wasm 传输文本内容方面涉及多次复制,加上这部分本来也不会加速多少)
zzhbbdbbd
2022-06-12 16:11:10 +08:00
@codehz 如果不遇到瓶颈业务(计算密集),比如高帧刷新动画,复杂渲染交互等,是没有多少性能优势的,至少从用户体验上是感受不到的。用 rust 来编译 wasm 应用的目的不是这个,而是多一种可能性,原来浏览器只能跑 JS ,现在能跑第二种语言( wasm )来作为编译目标了,这是好玩的,是值得探索的。

所以你能感受到这并不是在替代 js 的路上,而只是因为好玩,好多有趣的事情如果突然严肃起来去跟业务扯上关系不就不再有趣了吗 :D
v2defy
2022-06-12 23:24:34 +08:00
我用 dioxus 写过一个小页面,感觉还是挺好的,不知道以后会不会出现 rust 前端开发 这种职位,哈哈
zzhbbdbbd
2022-06-13 10:27:21 +08:00
@v2defy 🤔我觉得应该不会,但可能会出现专门解决特定问题的 wasm lib 编写的职位
boneyao
2022-06-14 13:01:13 +08:00
自己做设计,自己开发吗?
boneyao
2022-06-14 13:02:55 +08:00
ragnaroks
2022-06-14 21:39:07 +08:00
似乎没有搜索功能?
zzhbbdbbd
2022-06-14 21:55:43 +08:00
@ragnaroks 是的!搜索功能之前有设计但还没有时间来加上,后面会慢慢的完善起来
ragnaroks
2022-06-14 23:44:55 +08:00
@zzhbbdbbd 事实上我也正在实现一个完全静态的个人网站,正好也在处理搜索这里,我的做法是用 TS 写了个前端简易数据库,和 hexo 类似,最终产生一个巨大的 database.js 导入用于全文检索
zzhbbdbbd
2022-06-15 00:13:47 +08:00
@ragnaroks 我的做法和你类似,我是自己写了个 CLI ,在编译时把所有 markdown 的文章文件都打进一个 rust 文件(类似你的 database.js ),但我的存储结构在内存里只是一张线性表,对外暴露 service 来对这张线性表做查询。

```rust
pub static POSTS: [PostFile; 2] = [
PostFile {
content: include_str!("../../posts/build_blog.md"),
modified_time: 1654609915763,
filename: "build_blog"
},
PostFile {
content: include_str!("../../posts/add_links.md"),
modified_time: 1654855511389,
filename: "add_links"
},

];
```

不过线性表对查询并不是太友好,后面准备简单处理改成 hash 好了。
之前本想先落地到 indexedDB ,然后依赖 indexedDB 的 API 来做 CURD ,但后来想好像没啥必要。
ragnaroks
2022-06-15 08:08:25 +08:00
@zzhbbdbbd 可以,百花齐放,我的站是 http://www.ragnaroks.site/ ,目前还没加上搜索和标签,最近参加完美的 CSGO 比赛有点累
zzhbbdbbd
2022-06-15 11:11:19 +08:00
@ragnaroks 有兴趣交换友链吗 :)
ragnaroks
2022-06-15 12:25:41 +08:00
@zzhbbdbbd 可以,但是现在还没有做到友链模块,而且是内链(即首页 HTML 结构中没有),可以的话我在完善后娶你的仓库 PR
zzhbbdbbd
2022-06-15 12:39:23 +08:00
@ragnaroks 没问题,你也可以现在在我的 blog 上添加你的站点友链,后面你站点做了友链模块再加上我的也可以。
Ixizi
2022-06-15 15:39:11 +08:00
WASM 不一定要用 rust 写吧
zzhbbdbbd
2022-06-15 15:47:01 +08:00
@Ixizi 不一定,wasm 只是一个编译目标,任何实现了编译到 wasm 的编译的语言都可以。具体可以参见 https://webassembly.org/getting-started/developers-guide/
aitaii
2022-06-16 15:00:46 +08:00
blog_cover.svg 咋这么大
zzhbbdbbd
2022-06-16 15:25:10 +08:00
@aitaii sketch 直接做完导出的没有做压缩,图片资源不会阻塞渲染,只是看到一个加载的空框框会难受一点,压缩图片,移到国内的 cdn 后面可以慢慢优化

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/858931

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX