首页 > 编程语言 >python調用wasm

python調用wasm

时间:2022-09-30 19:34:27浏览次数:68  
标签:__ bindgen python add wasm 調用 rust pack

安裝wasm-pack

	  cargo install wasm-pack

新建rust lib 項目

	  cargo new --lib <project name>

配置Cargo.toml

	  [package]
	  name = "rust_wasm"
	  version = "0.1.0"
	  edition = "2021"
	  
	  # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
	  
	  [lib]
	  crate-type = ["cdylib"]
	  
	  [dependencies]
	  wasm-bindgen = "0.2.78"
	  
	  [package.metadata.wasm-pack.profile.release]
	  wasm-opt = false
	  

首先指定构建目标  crate-type = ["cdylib"] ,然后记得关闭  wasm-opt = false
編寫rust代碼

	  use wasm_bindgen::prelude::*;
	  
	  #[wasm_bindgen]
	  extern "C" {
	    fn alert(s: &str);
	  }
	  
	  #[wasm_bindgen]
	  pub fn add(a: usize, b:usize) -> usize {
	    a + b
	  }

編譯代碼爲wasm

	  wasm-pack build

目錄中多出了pkg目錄,將其中的rust_wasm_bg.wasm文件移動到根目錄並重命名爲simple.wasm備用
編寫python代碼

	  from wasmer import engine, Store, Module, Instance
	  import os
	  
	  __dir__ = os.path.dirname(os.path.realpath(__file__))
	  
	  module = Module(Store(), open(__dir__ + '/simple.wasm', 'rb').read())
	  # Now the module is compiled, we can instantiate it.
	  instance = Instance(module)
	  
	  # Call the exported `add` function.
	  result = instance.exports.add(5, 37)
	  
	  print(result) # 42!

标签:__,bindgen,python,add,wasm,調用,rust,pack
From: https://www.cnblogs.com/poifa/p/16745910.html

相关文章

  • Python抖音视频去水印,并打包成exe可执行文件
    前言抖音里面的视频保存之后,会发现全都带有水印,所以如何解决视频去除水印就很有必要,所以教程来了,本次教程不仅会教大家如何去除视频里的水印,并且教大家将程序制作成exe可......
  • Python学习路程——Day08
    Python学习路程——Day08目录Python学习路程——Day08字典相关操作1、类型转换2、字典取值3、修改值的数据与新增键值对4、删除数据5、统计字典中键值对的个数6、字典三剑......
  • Python Markdown解析利器----mistune详细用法记录
    @目录小试牛刀开始使用mistunemistune简单使用mistune高级用法(自定义mistune)mistune中插件插件使用方法(以删除线(strikethrough)为例)插件包名内置插件删除线(striket......
  • Python tkinter 做一个VIP视频解析的桌面软件,100%你会爱上它
    前言tkinter:GUI桌面应用开发模块,写软件界面你还可以打包成exe软件,哪怕你没有python环境,一样可以用虽然不一定要有界面,但是有界面,用户体验很棒…环境使用......
  • python面试编程题
    1:已知字符串 str='skdaskerkjsalkj',请统计该字符串中各字母出现的次数思路是:用字典str='skdaskerkjsalkj'a=dict()foriinstr:ifinotina.keys():a......
  • python数据类型·内置方法2
    今日内容概要字典相关操作元组相关操作集合相关操作字符编码(理论)字典相关操作1.类型转换 dict()字典的转换一般不使用关键字而是自己动手转2.字典必须......
  • 进入python的世界_day8_python基础——字典、元组、合集的内置方法、编码的介绍
    写在开头,昨天学了一些数据类型的内置使用方法,比如整形、浮点型、字符串、列表,今天学字典、元组、集合的常用内置方法,布尔值是没有所谓的内置方法的,还学了字符编码一、字......
  • python学习之数据内置
    今日分享字典相关操作元组相关操作集合相关操作字符编码(理论)字典相关操作1.类型转换 dict() 字典的转换一般不使用关键字而是靠自己手动转2.必须要学的......
  • Python 空间分析简介
    Python空间分析简介ImageSource:关注涉及任何类型的特定地理区域或位置信息的数据称为“空间”数据(或“地理空间”数据)。地理空间数据有助于理解地理属性和任何其他......
  • Python 缩进:有那么糟糕吗?
    Python缩进:有那么糟糕吗?它是否使Python的语法变得困难并且容易出错?Withorwithoutindentation,asinvisualorderorvisualclutter?Photoby里克·梅森on......