首页 > 其他分享 >Rust编写wasm入门

Rust编写wasm入门

时间:2024-09-14 17:36:18浏览次数:11  
标签:http 入门 bindgen wasm 服务器 port Rust

创建项目

cargo new --lib my-wasm

添加依赖Cargo.toml

[dependencies]
wasm-bindgen = "0.2"

[lib]
crate-type = ["cdylib"]

编写代码 src/lib.rs

use wasm_bindgen::prelude::*;

#[wasm_bindgen]
pub fn add(a: i32, b: i32) -> i32 {
       a + b
}

安装扩展,构建wasm

## 添加 wasm-pack 
cargo install wasm-pack
## 构建
wasm-pack build --target web

pkg文件夹

编写html测试页面

<!DOCTYPE html>
<html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Rust Wasm Example</title>
    <script type="module">
        import init, { add } from './pkg/my_wasm.js';
            async function run() {
                await init();
                console.log(add(2, 3));
            }
           run();

    </script>
    </head>
    <body>
        <h1>Rust Wasm Example</h1>
    </body>
</html>

html需要在服务器环境下打开,如果以文件方式打开,会报错跨域,我这里直接用go做文件服务器了

package main

import (
	"fmt"
	"net/http"
)

func main() {
	// 设置文件服务器的根目录
	http.Handle("/", http.FileServer(http.Dir(".")))
	// 定义服务器监听的端口
	port := "8080"
	// 启动服务器
	fmt.Printf("Starting file server on http://localhost:%s/\n", port)
	err := http.ListenAndServe(":"+port, nil)
	if err != nil {
		fmt.Println("Error starting file server: ", err)
	}
}

标签:http,入门,bindgen,wasm,服务器,port,Rust
From: https://www.cnblogs.com/qcy-blog/p/18414413

相关文章

  • vue2 antv x6 入门 (一)画布、节点、边
    安装#npmnpminstall@antv/x6--save#yarnyarnadd@antv/x6 1.初始化画布<divid="container"></div>import{Graph}from'@antv/x6'constgraph=newGraph({container:document.getElementById('container'......
  • 大语言模型(LLM)入门学习路线图
    Github项目上有一个大语言模型学习路线笔记,它全面涵盖了大语言模型的所需的基础知识学习,LLM前沿算法和架构,以及如何将大语言模型进行工程化实践。这份资料是初学者或有一定基础的开发/算法人员入门活深入大型语言模型学习的优秀参考。这份资料重点介绍了我们应该掌握哪些核......
  • Linux基础入门 --10 DAY
    文本常见处理工具文件内容查看命令    cat    格式:cat[OPTION]...[FILE]...    常见选项:    -E:显示行结束符    -A:显示所有控制符    -n:对显示出的每一行进行编号    -b:对非空行进行编号    -s......
  • 黑客入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
    ......
  • Python 入门教程(3)基础知识 | 3.2、数据类型、变量与常量
    文章目录一、数据类型、变量与常量1、数据类型2、变量3、常量一、数据类型、变量与常量1、数据类型Python的数据类型可以分为不可变类型和可变类型。不可变类型包括整数、浮点数、布尔值和元组,一旦创建,其值就不能改变。可变类型包括列表、字典和集合,它们的值可以......
  • 新手编程竞赛入门指南 [Cloned]
    欢迎加入编程竞赛协会(QQ群:)进入协会QQ群,联系纳新管理员xixu、ssmy,需提交信息(学院、班级、姓名、学号,vjudge帐号),通过审核后邀请加入“程序设计竞赛组”开展编程学习做题训练。受人数限制,一段时间不参与活动者会被移除。新手编程竞赛入门指南编程是程序设计的简称。计算机通过各种......
  • CentOs 入门必备基础知识
    CentOS(CommunityENTerpriseOperatingSystem)是一个基于RedHatEnterpriseLinux(RHEL)源代码构建的自由Linux发行版。作为一个稳定、可靠、开源的操作系统平台,CentOS广泛应用于Web服务器、数据库服务器、应用服务器等多种场景。以下是CentOS入门的必备基础知识,旨在帮助初学者......
  • Centos入门必备基础知识
    CentOS(CommunityENTerpriseOperatingSystem)是一个开源的Linux发行版,基于RedHatEnterpriseLinux(RHEL)源代码构建。以下是CentOS入门必备的一些基础知识:前言本文由浪浪云赞助发布,我们特别感谢浪浪云的大力支持。浪浪云是业内领先的云服务提供商,凭借其卓越的性能和稳......
  • Java入门:08.Java中的static关键字01
    1static关键字可以修饰属性变量,方法和代码段static修饰的属性称为静态属性或类属性,在类加载时就在方法区为属性开辟存储空间,无论创建多少个对象,静态属性在内存中只有一份。可以使用类名.静态属性的方式引用static修饰的方法称为静态方法或类方法,在类加载时就在方法......
  • Java入门:08.Java中的static关键字02(拓展:单例模式)
    1.3对象代码段和静态代码段什么是代码段?就是个{}里面包含一堆代码代码段可以写在方法中,也可以写在方法外代码段可以方法中和方法外独立存在,也可以配合着分支结构和循环结构存在classA{ {   ..... }  publicvoidt1(){   { ......