5个稳定版本
1.0.4 | 2021年11月21日 |
---|---|
1.0.0 | 2021年11月19日 |
459在 WebAssembly 中
17KB
166 行
单调递增
Rust实现的LeetCode问题#926,编译为WebAssembly并通过JavaScript调用
本地尝试
-
将此存储库克隆到您的计算机上。
-
通过运行
cargo install wasm-gc
安装wasm-gc
。这被build-demo.sh
用于通过删除不必要的/未使用的垃圾文件来减小编译的wasm二进制文件的大小。尽管项目本身表示大多数情况下不应使用它,但它似乎仍然可以使得wasm文件最小。我尝试在编译器选项中使用 --gc-sections
标志,并且仍然可以使其更小。我没有在这个项目中使用 wasm-bindgen
或wasm-pack
,这两个都试图在编译时删除垃圾文件,所以我使用了来手动完成。 -
在存储库根目录中运行
./build-demo.sh
。这将在存储库根目录中创建一个名为demo
的目录中的monotone_crescendo.wasm
二进制文件和一个index.html
文件。 -
cd
到demo/
并运行一个http服务器。例如,使用python的SimpleHTTPServer
cd demo/ python -m SimpleHTTPServer
然后演示将在
https://127.0.0.1:8000
中可用。
存储库文档
致谢
向Dr. Richard Apodaca及其博客depth-first.com表示极大的敬意,没有它,我可能无法理解如何在不直接深入研究类似wasm-bindgen的情况下从WebAssembly的线性内存中读取和写入。
Apodaca博士的这两篇博客对我非常有帮助
还要感谢Radu Matei及其博客文章,它帮助我基于从Apodaca博士的博客中学到的概念。
前缀和解决方案是LeetCode上的官方解决方案,我仅将其翻译成了Rust。
累积解决方案由tarunbisht在LeetCode上发布,我将其翻译成了Rust。