分类分类
大小:145.0 MB 更新:2021/05/20
类别:编程工具系统:WinXP, Win7, Win8, Win10, WinAll
innative可以帮助用户编辑WebAssembly,您可以在软件上获取构建WebAssembly模块需要的大部分功能,构建完毕就可以将其添加到其他开发软件使用,结合SDK功能就可以嵌入到新的项目使用,让用户可以快速完成新项目编程,软件提供了一个符合标准的WebAssembly环境,还允许进行广泛的自定义,并且包括一些非标准的内置功能,从而使本机WebAssembly模块的工作更加轻松,您可以通过静态嵌入、静态共享嵌入、动态共享嵌入的方式部署innative,也可以通过命令行的方式运行软件,如果你需要这款软件就可以下载使用!
inNative是跨平台的WebAssembly实现,可以嵌入到您的程序中,也可以作为独立的运行时安装。它将WebAssembly模块编译成C二进制文件,可以将其链接为静态或动态库,并可以通过简单的C接口进行访问。
尽管inNative符合标准,但它为您提供了一些选项,可以调整要实施的标准的哪些部分,从而允许您指定如何对所生成的WebAssembly二进制文件进行沙盒化(或不进行沙盒化)。这使inNative可以安全地在主机程序中执行沙盒WebAssembly,或者像本机程序一样编译调用内核函数的模块。
辅助功能
该inNative默认环境提供了几个辅助功能旨在使调试本地WebAssembly容易。所有这些函数都被视为具有默认调用约定的原始C函数,并且应像其他任何C函数一样导入。编译器本身还提供了一些内在函数,从WebAssembly的角度来看它们就像辅助函数。其中一些功能并不安全,如果启用了白名单,则必须像其他C函数一样将所有白名单列入白名单。
本地cref扩展
inNative实现cref代表C指针的自定义值类型。在大多数情况下,它的行为anyref与“引用类型建议”中的行为类似,充当传递给C存储器的不透明指针。anyref但是,与不同,您可以传递i32或传递i64给cref类型。该类型具有二进制编码,可以在任何标准的webassembly模块中实现,但是由于没有编译器可以生成该值,因此该类型主要用于.wat文件中。
inNative随附执行3个测试阶段的测试工具:
内部测试,旨在测试本机特定结构和非标准Webassembly扩展
基准测试,针对一个函数的多个Webassembly编译版本测试C ++版本的性能
标准的Web程序集测试,这是inNative实施.wast的当前规范中指定的所有核心文件。
命令行
inNative命令行使您可以访问已安装的运行时的功能,从而可以通过多种方式来编译,反编译或运行Webassembly模块。命令行接受格式为的WebAssembly文件列表.wasm,.wat或.wast根据提供的命令行选项将它们链接在一起。它还具有通过某些标志或命令行开关访问的其他功能
静态嵌入
对于要加载WebAssembly模块的大多数应用程序,建议使用静态嵌入inNative方法。尽管依赖于平台,但所有平台都必须:
1、下载或安装SDK。
2、链接到inNative静态库
3、将include/innative头文件添加到项目
4、包含inNative Default Environment静态库
静态库不能包含其他静态库,因此您需要将其包含innative.lib在正在构建的根可执行文件或DLL中。因为您是静态嵌入库,所以您可以访问外部API中列出的所有静态函数。
Windows
静态库:innative.lib和innative-d.lib
默认环境:innative-env.lib和innative-env-d.lib
将静态库添加到项目的其他依赖项(对于Visual Studio)或构建系统的等效项。将默认环境库放在/bin/文件夹中,并确保将其随应用程序一起分发。
创建自定义环境
nNative嵌入环境实际上只是标准C库,它们将C函数公开给正在使用其进行编译的WebAssembly模块。但是,inNative还支持通过基于名称处理规则导出专门命名的函数来创建公开与WebAssembly兼容的函数的C库。
导出C函数
编译一个静态(或共享)库,该库将要公开的C函数导出到WebAssembly模块。如果您使用的是C ++,请确保使用extern "C"来防止任何C ++名称修改。然后,只需在引用库的同时编译WebAssembly模块即可。
Windows示例
./innative-cmd.exe your_module.wasm -l your_library.lib
因为Windows会.lib为DLL生成文件,所以您应该为DLL或静态库执行此操作。
Linux示例
./innative-cmd your_module.wasm -l your_library.a
或者
./innative-cmd your_module.wasm -L your_shared_library
Linux有一个特殊的-L选项,告诉它链接到应该使用的共享库。请记住,在上面的示例中,实际文件名为libyour_shared_library.so,这是链接程序将在当前路径中查找的名称。有时,链接程序可能对库路径有些挑剔,在这种情况下,您可能想指定整个绝对路径。
如果已按照上述说明进行操作,则现在可以使用基本的C导入方法来导入C函数:
(import “ ” “ your_function ”(func $ yourfunc(result i32)))
使用标准的C调用约定通常是一个好主意,但是对于C函数,您还可以使用其他调用约定
导出WebAssembly函数
也可以创建一个公开WebAssembly函数的库,但前提是它们必须遵循严格的规则集。“名称修饰”文章详细介绍了名称修饰如何将模块+函数名称对转换为单个C符号:[module]_WASM_[function]。可以相反地进行这种处理,以从C函数声明中获取WebAssembly模块+函数名称对。
再一次,extern "C"如果您使用的是C ++ ,请确保添加。如果使用此功能编译库并将其添加到inNative命令行中,则可以将其导入到WebAssembly模块中,如下所示:
(import “ your_module ” “ your_function ”(func $ functest(param i64 f64 f32 i32)(result i64)))
但是,有一些限制:函数必须具有默认的C调用约定!如果它使用任何其他调用约定,则该行为是不确定的且不安全的。此外,只能使用5种类型:
当然,您也可以替换uint32_t为int32_t,并uint64_t为int64_t没有问题。您也可以将任意指针类型替换为void*。但是,void*必须映射到i6464位体系结构,i3232位体系结构,或者cref要使用inNative的cref扩展名。在将C函数签名与WebAssembly等效项进行匹配时,请格外小心,因为签名不匹配会破坏沙箱或使程序完全崩溃。
请记住,WebAssembly函数胜过C函数-如果导出伪装为WebAssembly导入的C函数,但是存在另一个具有相同名称和函数定义的WebAssembly模块,则WebAssembly版本将获胜。在将C函数导出为WebAssembly导入时,请确保为假模块选择唯一的名称。
废弃了Makefiles,转而使用CMake项目。(#33)
添加了#49 WASM指令执行计数器
添加了#26完全支持汇编脚本
增加了#20选项,可设置自定义启动函数
修正了#71处理调试信息时的边缘案例
修正了#72使用共享库时的绝对路径问题
修正了错误的llvm::Twine用法
改变了日志记录以使用回调函数
停止对内存密集的调试信息使用贪婪的分配器
修正了WAT解析过程中过多的内存使用
Embarcadero RAD Studio(多功能应用程序开发工具) 编程工具177.22 MB12
详情猿编程客户端 编程工具173.32 MB4.16.0
详情猿编程 编程工具173.32 MB4.16.0
详情VSCodium(VScode二进制版本) 编程工具76.23 MBv1.57.1
详情aardio(桌面软件快速开发) 编程工具9.72 MBv35.69.2
详情一鹤快手(AAuto Studio) 编程工具9.72 MBv35.69.2
详情ILSpy(.Net反编译) 编程工具3.97 MBv8.0.0.7339 绿色
详情文本编辑器 Notepad++ 编程工具7.81 MBv8.1.3 官方中文版
详情核桃编程 编程工具272.43 MBv2.1.120.0 官方版
详情delphi2007完整 编程工具1198 MB附安装教程
详情SAPIEN PrimalScript2015 编程工具78.02 MB附带安装教程
详情Alchemy Catalyst可视化汉化工具 编程工具81.00 MBv13.1.240
详情Professional Tag Editor(通用标签编辑器) 编程工具25.6 MBv1.0.6.8
详情Coffeecup HTML Editor(html网页编辑器) 编程工具68.98 MBv15.4 特别版
详情JCreator Pro 编程工具9.65 MBv5.0.1 汉化
详情WebStorm 12中文 编程工具209.88 MB附带安装教程
详情MSWLogo(多功能项目开发与管理工具) 编程工具2.25 MBv6.5 免费版
详情JetBrains datagrip 2018.2.1中文-datagrip 2018.2.1 编程工具160.88 MB附注册码汉化包
详情易安卓5.0 编程工具202 MBv5.0 附破解补丁
详情keil uvision5 编程工具271.63 MB附带安装教程
详情CIMCO Edit V8中文 编程工具248 MB附安装教程
详情IntelliJ IDEA 2020.1(java集成开发环境) 编程工具643.0 MB附安装教程
详情redis desktop manager2020.1中文 编程工具32.52 MB附带安装教程
详情猿编程 编程工具173.32 MB4.16.0
详情信捷PLC编程工具软件 编程工具14.4 MBv3.5.2 官方版
详情源码编辑器 编程工具201.0 MBv3.4.3 官方版
详情Microsoft Visual C++ 编程工具226.00 MBv6.0 SP6 简体中文版
详情s7 200 smart编程软件 编程工具187 MBv2.2 官方中文版
详情TouchWin编辑工具(信捷触摸屏编程软件) 编程工具55.69 MBv2.D2c 官方版
详情易语言5.8完美 编程工具312 MB5.8.1 破解增强版
详情Scraino(少儿编程软件) 编程工具272.93 MBv0.3.0 官方版
详情vs2008中文 编程工具1495 MB附序列号
详情e盾网络验证源码 编程工具25.77 MBV45 官方版
详情codeblocks 编程工具95.21 MBv13.12 中文完整版(带GNW编译器
详情Android Studio(安卓开发环境) 编程工具983.0 MBv3.5.0.21 汉化版(附安装教程)
详情源码编辑器pc版 编程工具201.0 MBv3.4.3 官方版
详情CH341A编程器 编程工具1.06 MB1.30 绿色中文版
详情layuiAdmin pro(layui后台管理模板系统) 编程工具0.57 MBv1.1.0 单页版
详情海龟编辑器 编程工具71.5 MBv0.8.4 中文版
详情Ardublock中文版(Arduino图形化编程软件) 编程工具2.65 MB附带安装教程
详情文本编辑器 Notepad++ 编程工具7.81 MBv8.1.3 官方中文版
详情富途牛牛 编程工具160.59 MBv11.8.9068 官方版
详情微信开发者工具 编程工具129.37 MBv1.05.2105170 官方版
详情UEStudio v18.0.0.18 简体中文绿色 编程工具19.00 MB
详情十六进制编辑器 WinHex 编程工具2.79 MBv20.2 SR-5
详情代码编辑器 Sublime Text 编程工具54.74 MBv4.0.0.4126
详情RJ TextEd(代码编辑器) 编程工具49.46 MBv15.31
详情核桃编程 编程工具272.43 MBv2.1.120.0 官方版
详情影刀 编程工具306.37 MBv4.9.14
详情Kate(高级文本编辑器) 编程工具56.11 MBv21.12.1.1544
详情