extism

2025-12-11 0 767

extism /raw/main/.github/assets/logo-horizontal-darkmode.png“>

概述

extism是使用WebAssembly(WASM)构建的轻量级框架。它支持在服务器,边缘,内部,物联网,浏览器以及两者之间的所有内容上运行的WASM代码。 extism目的是“通用”,因为它支持通用界面,无论它在何处运行。

注意: extism的主要用例之一是构建可扩展的软件和插件。您希望能够从用户执行任意,不信任的代码吗? extism使这一安全和实用。

此外, extism还增加了标准的WASM运行时间。例如,我们支持持续的内存/模块范围变量,没有WASI,运行时限制器和计时器,更简单的主机函数链接等,安全和主机控制的HTTP等。 extism用户构建:

  • 插件系统
  • FAAS平台
  • 代码生成器
  • Web应用程序
  • &更多…

支持的目标

我们目前为以下目标提供版本:

  • Aarch64-Apple-darwin
  • AARCH64-INSWONN-LINUX-GNU
  • AARCH64-INSWONN-LINUX-MUSL
  • x86_64-apple-darwin
  • x86_64-pc-windows-gnu
  • X86_64-PC-WINDOWS-MSVC
  • x86_64-ninknown-linux-gnu
  • X86_64-Inning-Linux-Musl

对于Android,我们建议您查看纯Java extism运行时的Cocory SDK。

在您的应用中运行WebAssembly

选择一个SDK以导入您的程序,并参考文档开始:

类型 语言 源代码 包裹
Rust SDK https://github.co**m*/extism/ extism /tree/main/runtime Crates.io
JS SDK https://github.co**m*/extism/js-sdk
(支持Web,节点,Deno和Bun!)
NPM
elixir SDK https://github.co**m*/extism/elixir-sdk 十六进制
去SDK https://github.co**m*/extism/go-sdk 去mod
Haskell SDK https://github.co**m*/extism/haskell-sdk 骇客
Java SDK https://github.co**m*/extism/java-sdk Sonatype
.NET SDK https://github.co**m*/extism/dotnet-sdk
(支持C#&F#!)
nuget
OCAML SDK https://github.co**m*/extism/ocaml-sdk OPAM
Perl SDK https://github.co**m*/extism/perl-sdk CPAN
PHP SDK https://github.co**m*/extism/php-sdk Packagist
Python SDK https://github.co**m*/extism/python-sdk PYPI
红宝石SDK https://github.co**m*/extism/ruby-sdk 红宝石
Zig SDK https://github.co**m*/extism/zig-sdk N/A。
C SDK https://github.co**m*/extism/ extism /tree/main/lib extism N/A。
C ++ SDK https://github.co**m*/extism/cpp-sdk N/A。

编译WebAssembly以在extism主机中运行

extism主机(运行SDK)必须执行具有PDK或插件开发套件的WebAssembly代码,该库将库列入.wasm二进制文件。 PDK使插件 /扩展代码作者可以轻松地从主机读取输入并返回数据,读取提供的配置,设置 /获取变量,如果允许,请拨出http调用,等等。

选择一个PDK以导入您的WASM程序,并参考以开始的文档:

类型 语言 源代码 包裹
Rust PDK https://github.co**m*/extism/rust-pdk Crates.io
JS PDK https://github.co**m*/extism/js-pdk N/A。
Python PDK https://github.co**m*/extism/python-pdk N/A。
去PDK https://github.co**m*/extism/go-pdk 去mod
Haskell PDK https://github.co**m*/extism/haskell-pdk 骇客
汇编PDK https://github.co**m*/extism/assemblyscript-pdk NPM
.NET PDK https://github.co**m*/extism/dotnet-pdk
(支持C#&F#!)
nuget
C PDK https://github.co**m*/extism/c-pdk N/A。
C ++ PDK https://github.co**m*/extism/cpp-pdk N/A。
Zig PDK https://github.co**m*/extism/zig-pdk N/A。

产生绑定

定义模式以描述要extism SDK和PDK语言之间使用的功能签名和类型通常非常有用。

XTP bindgen是为extism插件生成PDK绑定的开源框架。它是由XTP平台使用的,但可以在平台之外使用来定义任何extism兼容插件系统。

1。安装xtp CLI。

请参阅此处的安装说明。

2。使用我们的OpenAPI启发的IDL创建模式:

 version : v1-draft
exports : 
  CountVowels :
      input : 
          type : string
          contentType : text/plain; charset=utf-8
      output :
          $ref : \" #/components/schemas/VowelReport \"
          contentType : application/json
# components.schemas defined in example-schema.yaml...

请参阅示例 – chema.yaml或文档页面上的完整“厨房水槽”示例。

3。生成绑定以从您的插件中使用:

 xtp plugin init --schema-file ./example-schema.yaml
  > 1. TypeScript                      
    2. Go                              
    3. Rust                            
    4. Python                          
    5. C#                              
    6. Zig                             
    7. C++                             
    8. GitHub Template                 
    9. Local Template

这将创建一个整个样板插件项目,供您开始。实现空功能,然后运行xtp plugin build以编译插件。

有关XTP bindgen的更多信息,请参见Dylibso/XTP-BINDGEN存储库和官方XTP模式文档。

支持

不和谐

如果您遇到任何问题或有任何疑问,请加入我们的不和谐并告诉我们。我们的社区反应迅速,很乐意帮助您入门。

用法

前往项目网站以获取更多信息和文档。另外,考虑阅读有关extism及其目标和方法的概述。

贡献

感谢您考虑对extism的贡献,我们很乐意帮助您制作公关或找到一些工作!

最简单的开始方法是加入不和谐或在extism /proposals问题追踪器上打开问题,最终可以成为extism改进建议(EIP)。

有关更多信息,请阅读贡献指南。


谁是背后的?

extism是该团队的开源产品:

伸出手告诉我们您正在建造什么!我们很想提供帮助: hello@dylibso.com

下载源码

通过命令行克隆项目:

git clone https://github.com/extism/extism.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 extism https://www.zuozi.net/34160.html

AICoverGen
上一篇: AICoverGen
awesome c
下一篇: awesome c
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务