导入mysql在运行wasm包时会出现许多错误
我是一个非常新的生锈和网页组装和有一个简单的样本网站。到目前为止,它只是非常简单的东西,一切都很好。接下来我想了解一下如何连接到MySQL 在Cargo.toml中,我添加了:导入mysql在运行wasm包时会出现许多错误,mysql,rust,webassembly,Mysql,Rust,Webassembly,我是一个非常新的生锈和网页组装和有一个简单的样本网站。到目前为止,它只是非常简单的东西,一切都很好。接下来我想了解一下如何连接到MySQL 在Cargo.toml中,我添加了: [dependencies] wasm-bindgen = "0.2.50" mysql = "*" 没有mysql部分,一切都可以正常编译。一旦我添加了mysql=“*”,我就会收到很多(317)个错误 一些错误示例: [INFO]: Checking for the Wasm target.
[dependencies]
wasm-bindgen = "0.2.50"
mysql = "*"
没有mysql部分,一切都可以正常编译。一旦我添加了mysql=“*”
,我就会收到很多(317)个错误
一些错误示例:
[INFO]: Checking for the Wasm target...
[INFO]: Compiling to Wasm...
Compiling net2 v0.2.33
Compiling libc v0.2.62
error[E0432]: unresolved import `sys`
--> /home/rich/.cargo/registry/src/github.com-1ecc6299db9ec823/net2-0.2.33/src
/tcp.rs:18:5
|
18 | use sys::c;
| ^^^ maybe a missing `extern crate sys;`?
及
到目前为止,我还没有添加任何代码来实际连接到数据库。我只是想做这个项目。唯一的区别是添加了mysql依赖项
我在使用MySQL时使用了以下站点信息:
考虑到我是新手,我不确定还需要什么其他信息来帮助我
编辑:我在谷歌上搜索了很多这样的错误,但运气不好 这是一个相当大的区别;通过这样做,您将从最高层添加到最低层:
- 处理mysql的库
- 库处理MySQL可以使用的各种压缩机制
- 图书馆应对TLS
- 处理套接字的库(错误的来源)
wasm
一起工作,那么这就可以了。问题是,它不是;从该库的文件中可以看出,它“知道”windows、macOS或linux是目标。在您的例子中,wasm
不是这三个符号中的任何一个,因此它尝试使用net2
进行联网,这取决于libc
,它需要所有突然丢失的符号
如果你决定推进这一进程,你将陷入一个非常非常深的兔子洞。如果你这样做了,在评论中提及,我会给你指点。但是,在您这样做之前,请考虑以下内容:如果这是一个<代码> WASM>,任何有代码的人都可以知道三联体(原、主机、端口)访问MySQL服务器,以及凭据。这也可能会带来严重的基础架构问题,因为您不一定知道什么是可信客户机,什么不是
(我不会对你撒谎,这也将是一项大量的工作,而且大部分工作都不容易。例如,我不会钻那个洞)你可能是对的。特别是考虑到这只是一个“我想学习wasm”的项目。(这是永远不会发布的。)好消息是,这是学习体验的一部分!FWIW还有另一个问题,你需要在两者之间架起一座桥;这可能已经改变了,但上次我正确地查看了webassembly,唯一可用的通信方法是webRTC、websockets和HTTP。所以,你应该更进一步。至于学习,真正的学习体验是旅程,而不是目的地:-)
error[E0425]: cannot find value `timeout2ms` in this scope
--> /home/rich/.cargo/registry/src/github.com-1ecc6299db9ec823/net2-0.2.33/src/ext.rs:1145:18
|
1145 | .map(timeout2ms)
| ^^^^^^^^^^ not found in this scope
error[E0425]: cannot find value `SOL_SOCKET` in this scope
--> /home/rich/.cargo/registry/src/github.com-1ecc6299db9ec823/net2-0.2.33/src/ext.rs:1149:33
|
1149 | set_opt(self.as_sock(), SOL_SOCKET, SO_SNDTIMEO,
| ^^^^^^^^^^ not found in this scope
error[E0425]: cannot find value `SO_SNDTIMEO` in this scope
--> /home/rich/.cargo/registry/src/github.com-1ecc6299db9ec823/net2-0.2.33/src/ext.rs:1149:45
|
1149 | set_opt(self.as_sock(), SOL_SOCKET, SO_SNDTIMEO,
| ^^^^^^^^^^^ not found in this scope