嗨大家好,我叫麦克原,我是Watham Edge的Maintenor非常高兴有机会在CubeCon中国跟大家能够做这个交流大家可以看见我的背景我可能住在酒店里录这段视频希望一斤斤外过去能够跟大家当面交流吧我们这个talk主要想讲一下我们这个项目,我们这个开玩笑的项目叫做Watham Edge是一个CNCF今年进入CNCF Sandbox的项目所以我们当然想做什么呢?想做一个cloud native的webassembly runtime就是说做一个原原生的cloud native的执行环境刚才都讲到这个问题呢我们今天主要就大约半小时的时间大约主要讲几点第一点就是什么是webassembly因为webassembly在原原生这个context里面是怎么用的我觉得这个可能很多朋友还不是特别清晰所以说我们会花几分钟讲一下这件事然后再介绍一下Watham Edge这个项目的介绍一下这个项目就是为什么这个项目是怎么来的它具体要解决什么问题然后下面会讲一下我要把原原生Watham Edge的应用的我们现在有些什么应用实力在那些公司在那些场景里面有落地的场景然后最后呢我们对就是对这个有兴趣的朋友我想就今天在座的对吧我们会一个快速入门就是讲讲怎么尽快的开始携带对吧怎么在用Watham Edge上面写应用或者参与到Watham Edge的这个carrier社区里面那我们是怎么看webassembly我们认为它是新一代的容器技术这听起来当然肯定觉得有点惊讶就是webassembly不是在浏览器里面运行游戏的吗就是最近不是Fotoshop把Dobby Photoshop主要Dobby Photoshop已经可以在浏览器里运行了这就是webassembly的技术因为它把Fotoshop本来是用C元写的它把C元写成别因层webassembly了然后就能在web就能在浏览器里面运行了对吧但其实早在2019年这是疫情以前的事了就是Solomon Hex是Darker的创始人Darker的Funding CEO这是就是在容器里面运行的大流吧他说Wazerman was existing in 2008We wouldn't have needed to create a DockerThat's how important it isWebassembly on the server is the future of computing对吧他说webassembly如果早就存在的话我就不发明Darker了所以说其实把webassembly当作一个容器技术来进行其实一直是这行业里面是有这个想法的而且其实这也是我们这个项目在2019年成立的时候很大程度上也是inspire把它的一个说法所以这个是所以它这个推特我经常用那我们做了一个informal graph我觉得这个我们在会后可以给大家发一下就是说Webassembly跟Darker之间的比较到底是应该怎么看的这两个技术之间的异同呢我在这上面的字可能稍微一点小不过我去稍微念一下对那就是说这是FastnessFastness家公司的CTO说的他说Darker这个东西是在模拟一个私有的操作系统就是我在一个操作系统上模拟了一个给你个人是给用户一个用户给每个用户都模拟出一个私有的操作系统来的就像好像每个用户都有入体一样所以Darker是干这件事这是所谓应用容器的说法对吧这就是在Linux操作系统上面模拟了一个私有的Linux出来而Webassembly能不一样Webassembly就是在Linux操作系统上面模拟了一个进程出来就是说它是在一个进程里面进行它有进程里面所有的资源所以说这是他们两个最大的Fundamental Difference因为有这个Difference所以说Webassembly跟Darker比起来其实主要有两大好处第一大就是它的性能特别好它的性能就Darker其实性能算是不错的Darker跟跟真正的HyperRider水利机比起来Darker的性能其实是不错的但是Webassembly无论在启动性能和在运行性能都可以比Darker再能上一个台阶尤其在能启动的时候可以比Darker快100倍有什么原因呢因为它不用启动所谓模拟操作系统的那一套也不用在里面启动原的框架也不用在里面启动比如说你要在Darker里面运行一段Node.js的程序你应该怎么办呢你基本上你要先启Darker对吧,Darker起了之后要启所谓的Gauss Linux再在里面启一个Lanix的系统然后再在上面启Node.js再在上面启V版然后最后运行一段JavaScript代码另外一段代码也许只有20行然后运行完了之后要把所有的东西都吓到这是在典型的语言生定用场景里面怎么用Darker去干这些事但如果用Web生费的话all you need to do就是把Web生费启起来然后运行一段JavaScript解锁对吧,所以说它的启动时间跟运行速度都比就说都能够比像Darker这样的容器快很多然后呢它可以但是它可以在达到所谓的处理cross-platform或者处理portable因为Darker这东西其实并不能portable就说是因为你看我们知道如果下面CPU不一样的话两样不同的Darker image下面如果GPU的话两样唯一的Darker image所以Darker这个东西其实是一个packaging format它其实并没有达到以前比如说Java讲的这种跨平台的能力但是Web生费就可以达到跨平台的能力它可以把下面的操作系统和操作系统下面一年全部都抽象出来所以说对于开发者来说只需要编译了Web生费的代理课就可以了那同时呢Web生费呢它有支持多种语言就是它所谓的guest app就是说我用什么语言写的applicating可以编译成Web生费呢这也能够对于Web生费来说几乎所有的编译型语言它都能支持就是什么CPC家Rust,Go,SwiftCosting这样的源都行然后我们在里面做了一个很重要的扩展是把java script和拍照也做进去了然后我找Microsoft现在做downnet所以这个eco system现在是在越来越大所以说它在这点上呢跟darkware有点像就是darkware是所有的语言运行的成语它到那边已经Web生费也可以但Web生费在这点上呢比JVM进了一大步就跟Web生费另外一个可以比的就是所谓就是多年前的JVM或者今天也在用的JVM对吧但是JVM前面指示java和java那个family的语言因为它对语言是怎么管理内存的做了一定的做了一定的假设对吧Web生费呢有一个特别大的好处就是它是polygot的就是说它可以支持在各种各样语言的Application都可以变成Web生费同时呢在Safety Security Isolation里面Web生费也比darkware做的好因为darkware是一个发明的时候就是一个工具型的东西并不是以安全性跟隔离性为主导但是Web生费其实一开始就是希望在浏览器里面能够运行CC++的债法而不把浏览器快失掉对吧所以它对隔离性其实从对隔离性的安全性从一开始就是有设计的对吧然后当然darkware的一个非常大的优势今天就是它的它的management所有性的生态就是Kubernetes这是为什么我们在这儿开Q-Con对吧在darkware上面的darkware北枪的management生态非常非常大那在这个里面就是一般的VM或者一般的就是包括JVM包括V8之类的东西其实都没有办法在这方面跟darkware竞争因为所以也就造成了今天比如说你要运行加WAPTKGIN或者运行加WAPTKGIN是把JVM放在darkware里面运行是把V8放在darkware里面运行因为这样的话才能把它调动起来才能进行支援的分配对吧所以在这个情况下其实WAPTKGIN在这一块因为我们把它当作一个远远生的round time在用所以在当作远远生的round time在manage所以说在最近我很高兴的report那就是因为我们这样的项目Synthesizer其他项目的共同努力现在WAPTKGIN支持在Kubernetes这个生态里面现在变得越来越好这是为什么今天在这儿在Q-Con给了这个套合原因那在两个月前北美的Q-Con在在洛杉矶我们专门有一天是叫做You knowColonier Watson Day就是专门有一天的talk试讲WebAssembly在远远生在Kubernetes这个ecosystem里面是怎么用的所以大家如果有兴趣的话那个里面我们的公众号其实有有我当时讲的翻译的中文和其他人讲的和我写的summary然后还有其他人的讲话的video其实在那里面都有所以大家如果有兴趣的话可以到我们公众号给到我们公众号上去看好的那我们就summarize一下刚刚讲的darker跟webAssembly其实在很多方面是可以比的但有些方面又不能比就说是各有常处吧就是webAssembly的性能特别darker能够快100倍能够轻100倍就说是它的它的大小就是它的性能和它的安全性它的memory footprint都比darker好很多但是它对开发者利用程度上来讲比我darker因为darker就给你操作系统你用什么就可以用什么这是为什么这是为什么它的footprint这么大的原因对吧但是webAssembly需要你用就是webAssembly的编译器对吧这样的语言或者javascript拍上这样的round time给编译成webAssembly然后之后才能用所以说对于开发者来说需要需要多走一步需要用它的工具链对吧但对于darker来说这东西比较简单所以说我们觉得这个生态在下面既然说两个都能被kubernetes和就是只要生态来进行管理我们觉得下面的大概率的情况是这两个东西会同时存在这也就是我们今天看电的情况就是说因为在kubernetes这个生态里面是分层的它最下面是所谓的容器contain around time在上面是所谓low level低层的round time这就叫什么Cround around CGewiser这种东西就是直接能够起container然后能够能够执行container里面的内容对吧然后在这上面还有一层叫做CRI round time就是说这个round time是提供了container repository management就是到哪去拿到到哪去拿到的container image怎么跟kubernetes接口这套东西放在CRI里面这样的项目比如说是container DCRIO还有darker自己对吧在网上是kuberneteskubernetes的种类就很多了对吧就是说它不只有k8s还有k3s还有create还有就说是很多变状他们下面都通过CRI去接CRI round timeCRI round time去接low level round time然后low level round time去提这一面然后这个绿颜色的东西是我们现在已经工具链就生态链对吧发现我们有一个就是说在最底下我们的container image可以是darker LinuxLinux image也可以是webisomlet的image然后现在我们跟Cri round合作就是Cri round的开发者已经把wasm edge的支持officiallymerge到他们的upstream里面去了所以在Cri round里面看到一个image从darker hub里面下一个image他可以知道这个image里面到底是linux还是webisomlet如果是webisomlet的话他就请wasm edge去支援他因为Cri round支持了这个在上面支持Cri round比如说CRI其实container D也可以然后K8IS这一整套系统就都可以用起来了所以一旦在Cri round里面支持了的话就一旦在low level round time里面支持了的话整个Kubernetes一共谁吃了就都可以把webisomlet用起来所以我们看见的未来是什么呢就是未来container format会有两种一种是叫做linux container的darker这样的用法另外一种是轻量级快速度的webisomlet的round time所以说它们现在都不同的用处对吧就是darker container会做比较long round time或者说工具性质的对开发者比较有好的这种就是今天的放在darker container里面运行的application但是webisomlet这个round time会更适合去进行比如说surface functionsurface喊数或者边缘计算或者边缘设备或者这种东西对吧所以说我们会发现在同一系统里面会有两种unit会有两种container他们在side by side什么接命间的运行各自进行不同的计算任务根据业务的需求各自会有不同的任务对吧所以说再回到刚刚那个twit刚刚的twit其实在支持港的大部分人说solomon hackstwit就只说刚刚那一句其实他在后面又发了好几个这个我觉得特别好就是说他说所以他就觉得自己说的不太对因为他毕竟是darker发明人说那时候为什么要取代darker了他说他说我要wassup replacedarker最后他还说no对吧但是imaginefuturedarker runslinuxcontainerswindowscontainersand wasupcontainersside by side这就是我刚刚的vation这只是在当时他说他想推的是darker swamp所以他认为darker swamp会把下面东西都绕起来但事实上这件事没有发生事实上是kubernetes对吧我们今天来开cubecon就是说是我们在这个生态里面我们终于可以实现solomonhex.invation就是说我们会wassup containerside by side其中一种是wassup container是做别人计算高性能计算default print计算的这样的任务所以说这是web assembly和原生的关系然后我们稍微再简单介绍一下WassupMatch这个项目WassupMatch这个项目全名叫做WassupMatch Round Time其实它就是一个round time就是一个web assembly round time这个是我们的get up repository大家如果有兴趣的话就是说是这个community还是非常active就里面有很多人在问问题提一宿因为我们就是跟很多项目有合作因为我们是个round time所以很多项目就是要用到我们然后大家如果有需求或者说想在这个项目里面贡献都欢迎到我们的get up repository里面来就说跟我们讨论我们应该一起那web assembly round time在市场上当然不止WassupMatch一个了对吧比如说今天大家所有的今天我们在说人都是在用计算机或者在用手机看这个talk对吧那我就可以95%的12天说你的手机里面今天就已经支持了web assembly对吧那就是因为所有的所有的大厂都把web assembly做到一个软件里面web assembly在server side的web assembly round time也有好几个那WassupMatch的好处是什么呢那当然第一个就是至少我们自己是这么认为的而且我们的benchmark也支持这个我们在tweb software专门发表一篇文章就是我们通过对aot编辑的优化和支持我们现在是市场上最快的web assembly round time然后第二个就我刚刚讲过了我们支持javascript因为javascript大家知道不是一个编辑型的语言所以在web assembly这样的轻量计计里面支持其实是有一定的困难程度的就是说因为它需要因为这个tag round time需要去管理什么的如果对javascript round time的改造我们现在已经在里面能够支持比较好的支持javascript这是为什么我们在好几个比较大的项目里面能够能够运用的原因就是因为当然大家在这现在也会问那为什么你要round javascript为什么其实用v8你为什么要把javascript放在web assembly里面运行呢放在WassupMatch运行那其实原因就我刚刚讲的就是v8这种javascript round time其实并不是为隔离并不是为管理并不是为运源程度的场景设计的所以要用到它你还得要把它放在darker里面我再来外面装一层no.js或者dino再装一层gaslinux整个东西放在darker里面进行运行所以说其实是一个效率相当低的事那用web assembly来运行javascript可以把效率提高很多这就是我们一直讲的效率效率跟footprint在边缘介绍里面非常重要那我们在市场上可能是跨平台支持最好的为什么要让他们自己就包括像calfor这样的原来汽车上的实施操作系统我们也可以支持这个是跟dinox完全不同的系统是个微内核的系统那当然我们刚刚也讲了在管理上我们可以用seron或者runc来支持它来支持我们的wasmatch然后能够对所谓用gas的方法对资源进行隔离这个是一个区块链的想法就是说我与其告诉你你的这个东西只能用一块cpu能够用多少内存instead我告诉你你能够用多少cpu cycle因为webisome里本身就是虚拟机它知道里面instruction有多少所以说它可以知道它可以知道它可以知道非常准确的知道我们每一程序消耗的计算资源有多少所以我可以把这东西计算能gas然后把它预先分配给每一个计算人物或者每个容器让它只能占有这么多资源然后wasmatch就是说在webisome里的标准之上我们做了很多就是说是社区需要的扩展或者客户需要的扩展包括对网络的支持包括对异部操作的支持包括对tensor flow和gpu的支持然后包括对数据过程处的支持所以我们刚刚讲到了wasmatch 跟k8s那wasmatch因为我们其实在Kubernetes的一个计算我们是CNCF所以我们跟我们跟k8s的集成度是最好的这么多就是网页或者tutorial这边讲了怎么把wasmatch装到kubernetes一个系统里面一些势力里面有代码里面有getable actions把这些代码全部把它们跑通对吧所以说这个大家可以看一看那么刚刚也讲了wasmatch跟一个很大的优势就是它能够运行java script那它能够运行java script不只是它能够运行作为一个轻量的快速的wavt来运行java script而且因为它是它里面还有别忘了它里面还有其他的wasmatch extension所以说用户可以在用其他语言写wasmatch module然后把这些module集成到java script里面来比如说我在java script里面有一个API或者有一个对象或者有一个方讯号这个东西在背后必定是要用java script来实现cube rust来实现编译成wasmatch在wasmatch里面就能够高效的实现java script里面一些计算任务比较大的任务所以说这个是一个在我们看来就叫用 rust 这样的infrastructure 语言去implement java script最近有一篇很影响很大的文章说java script future is rust其实就是在讲这个意思就是说是me can use rust 这样的高性能的系统语言去implement java scriptimplement featurejava script 只是用户要用到一个语言就跟今天拍上情况很影响对吧 今天拍上大家用来做Machine Learning其实大部分工作都是下面的语言的library完成的但是呢因为拍上提供了一个很用户对开发者来说有好界面所以说能够很快把这件事情给就说是能够这几个很好combination对于开发者来说他觉得自己在用java script和拍上但其实在背后用的是rust中间的把他们连接起来的东西是什么呢把他们连接起来的东西是wasmatch是wasmatch好的还有10分钟左右所以我们介绍一下云原生wasmatch的应用就是我们到底就是我们刚讲的这些东西概念上听着还好就能够作为一种轻量级快速的darker替代的各种云云对吧但是它具体在哪些场景里面在用呢那当然第一个就是所谓公有云的serverless fast我们刚讲的web assembly就今天的serverless function基本都是用darker或者用micro vm做的那我刚刚就讲的这个问题就是他们的效能非常低就是非常容易用但是效能非常低比如就是一个为一个20行的java script程序我想把它变成一个方向的serverless pen那个fast对吧我在后段要起的事情之后先起darker这样的可能不容易再起guest Linux再起nodejs再起viva就我刚讲就一套东西就为了让一个20行的代码对吧那在所以说呢今天的serverless fast其实有很多in efficiency那我们在serverless fast里面去用web assembly有两种做法第一种做法就是不改它今天的架构仍然在darker里面运行但instead of在darker里面运行一个guestOS加nodejs再加viva我把这三个东西给combine into web assembly就说我还是在darker里面运行因为他们今天的架构是darker但是呢在这里面去用web assembly作为一种packaging format去把里面的dependency去把里面cross-platform的issue去把这些东西全部解决了然后我就不就说是那个我的一个darker image就可以在就在很多平台运行对吧所以说在这个然后呢我也有比darker更高的安全格运行所以在所以这个是第一个做法就是在今天我们的就说是一有的caldy ecosystem比如说在YARGAWSLAM在腾性运行serverless里面这种东西里面我们怎么把web assembly加运去web assemblyYARG我们带来什么好处他们就能够带来就说是在现有的系统上能够有performance的提高能够footprint变得更好更容易manage对吧但是呢我们仍然认为一个更好的方法是直接把它跟darkerside-by-side运行而不是把它在darker里面运行那就讲到下一个了就是运源微服的运源帧微服就说在一个serverless mesh这样的系统里面比如说在dapper或者在蚂蚁金服的mountain或者在aparture的event mesh这样的这样的系统里面我们不用去darker image来做我们的微服而直接去web assembly让time来做我们的微服我刚才讲了为什么要用这个在这种情况下我们真正就可以达到把darker跟web assembly让side-by-side他们运行不同不同性质的计算不同性质的功能好当然还有一个我们刚才讲的就是说用web assembly在边缘Server和边缘网络上面对吧那就是说用kubernetes的的变集比如说cube edgesuper edge open out这样的这样的round time他们下面通过serverlesshenternity然后通过serverl来运行wasmaged application所以说在这个呢这个呢应用就变得更加狂烦了因为Edge network有很多尤其是随着5G的发展对吧有汽车工厂各种各样的Edge network其实都是需要一个就是说大家都想把云元生的这套理念和这套管理方法运行放到这样的网络和这样的设备上面去但是呢darker太重所以说总是很难成功或者说只能做proof of concept很难做到做到生产环境里面去但是用web assembly这件事情终于至少有留解决的方向对吧就是说能够把这东西变成足够轻足够快才运行到边缘设备和边缘网络上来好当然还有另外一个用法也说不刚讲就是所谓用web assembly做嵌入式函数这在SARS里面特别有用就是SARS里面今天大家都用API进行隔离对吧就说是我要去customize一个一个SARS3.0我怎么用的就我用它的API但是API的玩意一个是man第二个要用户自己有server然后也不安全一定要有各种感的安全检查那在SARS里面我们觉得发Banner的做法就是所谓用Banner的function这个现在SARS没有用得越来越多就是我直接给SARS上传来单代码说运行我的程序的时候你就运行这段代码对吧但是这就提出了一个挑战就是要隔离就是因为我写的代码跟你写的代码我不同的SARS多诸故的情况下我互相的代码我不能互相打架对吧那在这种情况下Darker是一种解决方案我也知道有人用Darker在做但是Darker我们刚刚也讲了这种非常小的函数每个函数要起个Darker是非常效率非常低的做法而且就是在架构上也非常复杂所以说用WebAssembly这样的轻量Drawing Time去在SARS里面去做签入式函数能够让用户以多种语言以各种语言包括JavaScript写自己的程序来customize这个SARS的behavior这个在SARS里面我们也觉得会有广泛的用处所以说这个是大家用Watermatch在Cloud Native Computing里面的集中UseCaseOh by the way对另外一个跟SARS很有关系的也是做签入式函数的就是在把BnG上跟SARS放在一起对吧就是说我有在BnG上里面需要有data streaming network比如说在工厂里面或在汽车里面用了特别多在这种情况下我需要在我的firmark里面加入用户定义的程序就是用户点在我的firmark里面能够扩展能够就说是其他自己的逻辑在这种情况下外报设备也是一个最好的在我们看在现有的解决方案里面外报设备或者Watermatch是一个最好的解决方案那我们最后还有大概五分钟时间我们讲一下这个Watermatch的快速入门就是作为一个程序员我怎么快速入门Watermatch的application其实那很简单如果你是一个Linux user的话用一行命令就可以然后你把这些现在大家通用的方案都是这样就是wget或者curl你把这个install script给给download下来然后用batch去让它它就会把Watermatch的命令行工具和它的就是如果你要用其他语言来开发Watermatch的话其他的它的它的sdk都给装到你的都给装到你的机器里面了当然另外一个做法就是你可以用开发版的darker镜像这什么意思呢就说是你不想就说很多情况下我不想在自己的机器上乱装东西所以说你要只是想试一试也就可以直接用我们已经准备好的一个叫做application development的darker镜像直接在它上面进行开发所以说对这两个来说都是一行命令给搞定的事当然装了之后你就可以开始运行一些简单的Watermatch类似的程序这就是比如说比如说在我们darker image里面或者在我们github里面有一个example repository你就可以运行比如说来clow world然后来运行这个clow world是一个是一个有命function的就说它是一个程序是可以独立运行的或者你也可以这个WatermatchBitco里面没有一个入口或者没有一个命function可以直接运行但是它里面有函数所以这个里面就是你可以计算这个数列从第十个开始算起对吧Fab数列所以说这个是另外一种用法然后你也可以在里面运行java script你可以自己写java script或者看我们写的clow world java script其实就是把命令行的命令给你给你返过来然后还可以运行比较复杂的一个强迫比如说你可以用WatermatchBitco进行AI推理这也就是在在两张的时候就已经装好了就是它把因为它把tencent flow装进去了所以说你就可以在里面直接说我给你一个图片然后用tencent flow的模型去detect一下这个图片里面是什么在这里面detect出来的图片里面是热狗超大所以说所以用CLI你就马上可以运行一些就是说是很简单的程序然后这些程序里面每个程序都有tutorial这些程序每个里面都会告诉你这个程序是怎么编一层web什么的它以前要么是用Rust是用其他语言写的程序这些程序是怎么被编一层web什么的然后在这可以被CLI运行的对吧所以说这个如果大家follow这个tutorial的话大家可以花三五分钟时间就可以把它搞定但是如果想知道更多的话就可以去follow the link然后看这些程序自己的source code然后install他们的工具链然后比如说你要用Rust就是Rust的这家工具链你要用就这些家家的这些家家的工具链然后写自己的程序把它编一层web什么的然后用CLI运行所以这个是一条路第二条路另外一条路就是说我们在各大工具运行里其实已经做了web什么的跟sobless传输的基层就是其实包括了像AWS跟腾群银杖的工具运行也包括了相伴销给netlify这样大家广泛使用的叫做编运集团运行然后还包括了像什么dipers on the framework所以我们有很多这样的tutorial那这样的tutorial其实它就可以起到的作用就是刚刚那个CLI的作用就是说是你可以写一个web什么类的程序然后用web什么类的工具比如写个Rust的程序然后用Rust对web什么类的编运把它变成web什么类然后直接用我们的template的项目就可以把它上传到比如说腾群银然后在腾群�上把它变成一个网络服务已经执行所以这也是快速许多的方法就是说如果我想如果的出发点就是要用web什么类去做web服务的话我也是并不想用就是我也是并不想要用CLI因为我最后不是要用CLI我最后是要放在服务器上对吧那用现有的serverless framework我们在这些框架上面都有一个dump所以大家可以来就说是选大家最喜欢的cloud provider然后很快的系统这件事对当然这个是一个运用的方法这是更广泛的运用方法是吧web assembly嵌入到你自己的程序里面去就比就是我刚刚讲的SARS一个囊谱或者边缘计算的一个囊谱就是我用购写的一个程序那这个程序需要但这个程序是个框架就是说它在实际运用中需要这程序的用户或者客户自己写软带来对比如说数据进行处理或者什么这种那大家也知道在购这个运用里面做购plugin这个事情其实社区困惑了好几年今天都还没有特别好的解决方案就是几点有解决方案但也有各种各样的问题而且也只支持高外面的能够所以说如果你有个购的程序其实今天在购里面写plugin最好的方法是用web assembly因为一旦用web assembly的话你的购程序就能够就是写plugin的人可以用java script也可以用也可以用ruster或者用tiny go对吧就是可以用web assembly支持的任何一种运用然后通过wasmh的go API把它嵌入到你的购程区里面所以你的购程区里面可以说我在这里我要去比如说我们刚刚讲的这个流处理framework幽谋对吧它收到了一个数据它收到了一幅摄像头来的画片它要去识别的画片里面它就要去call这个用户自己提供的算法或者用户自己提供的东西这个用户可以用java script或者可以用rust去提供算法然后把它嵌入到幽谋这个framework里面我本身是用购险的所以说这个就比我觉得比今天的就是这个白发是把第三方代码嵌入到你的go application里面最好做吧对吧所以说依止来推用rust写的程序也可以用它来call就是rust可以在web assembly里面运行也可以用rust在外面包着web assembly运行对吧所以说rust可以做web assembly host也可以做它的guest是一家一家一样的用node.js也可以在node.js里面我们有一个plugin可以在node.js里面直接起wattmatch这样的话你就就是说你用java script这就造成了你用java script写的application可以去call一个rust的function对吧就是而这个rust的function可以是不受信任的可以是可以是零用户提供也可以是你自己写的所以说在这里面的应用场景就会变得非常非常多然后我们我们也希望大家就是说是因为这个是个技术软件所以它有各种样的所以它可能会有很多应用场景都是我们没有想到的我们也希望大家回到我们的社区里面来然后就是然后开始把wattmatch在你自己的项目里面用起来然后告诉我们我们还缺什么能够然后我们能够一起把这个把这个setting-setting项目给做好对所以说最后我就想停在这个side上面就是当然我们的get-up项目在这儿如果说大家有兴趣的话可以在上面提e-show可以在上面跟我们讨论我们基本开发全部是open就是我们我们的开发我们现在软件里面有什么bugroadmap有什么之类的这些东西都全部在get-up上面然后如果在cncf大家用slack的话可以在cncfslack里面搜索wattmatch加入到我们的channel里面或者我们有一个email group在google group里面就是wattmatch.googlegroups.com所以大家也希望上面订阅订阅我们的email因为那上面会有一些讨论但是traffic不多大概就是比如说一周一个email这种水平但是大部分的讨论还是在get-up里面所以说如果大家有兴趣的话先给大家我觉得我今天实验有大了非常感谢大家今天听我讲了这么长时间然后希望在wattmatch希望在wattmatch社区里面能够见到大家谢谢拜拜