开源
YoMo:流媒体无服务器框架
来源:元经纪     阅读:430
网站管理员
发布于 2023-02-06 09:29
查看主页

概述

YoMo 在很大程度上是一个开源 Streaming Serverless Framework,允许用户创建低延迟边缘计算应用程序。建立在 QUIC 传输协议之上,功能依赖于编程接口,它允许快速开发地理分布式系统。Metaverse、实时网络应用程序、AR/VR、物联网和其他应用程序都在使用它。 它为每个数据包设计提供 TLS v1.3 安全性。其地理分布式边缘网格原生架构使服务更接近最终用户。最后但并非最不重要的。YOMO 提供了一种利用无服务器服务的事件优先架构。

入门

必要条件

 

[hidecontent type="logged" desc="隐藏内容:登录后可查看"]

安装 Go

1. 安装 CLI

curl -fsSL https://get.yomo.run | sh

验证 CLI 是否安装成功

$ yomo version

YoMo CLI Version: v1.1.1
Runtime Version: v1.8.1

2. 创建流函数

  • [rihide]
    $ yomo init yomo-app-demo
    
    ⌛  Initializing the Stream Function...
    ✅  Congratulations! You have initialized the stream function successfully.
    ℹ️   You can enjoy the YoMo Stream Function via the command: 
    ℹ️   	DEV: 	yomo dev -n Noise yomo-app-demo/app.go
    ℹ️   	PROD: 	First run source application, eg: go run example/source/main.go
    		Second: yomo run -n yomo-app-demo yomo-app-demo/app.go
    
    $ cd yomo-app-demo
    

    CLI 将自动创建app.go

    package main
    
    import (
    	"context"
    	"encoding/json"
    	"fmt"
    	"time"
    
    	"github.com/yomorun/yomo/rx"
    )
    
    // NoiseData represents the structure of data
    type NoiseData struct {
    	Noise float32 `json:"noise"` // Noise value
    	Time  int64   `json:"time"`  // Timestamp (ms)
    	From  string  `json:"from"`  // Source IP
    }
    
    var echo = func(_ context.Context, i interface{}) (interface{}, error) {
    	value := i.(*NoiseData)
    	value.Noise = value.Noise / 10
    	rightNow := time.Now().UnixNano() / int64(time.Millisecond)
    	fmt.Println(fmt.Sprintf("[%s] %d > value: %f ⚡️=%dms", value.From, value.Time, value.Noise, rightNow-value.Time))
    	return value.Noise, nil
    }
    
    // Handler will handle data in Rx way
    func Handler(rxstream rx.Stream) rx.Stream {
    	stream := rxstream.
    		Unmarshal(json.Unmarshal, func() interface{} { return &NoiseData{} }).
    		Debounce(50).
    		Map(echo).
    		StdOut()
    
    	return stream
    }
    
    func DataTags() []byte {
    	return []byte{0x33}
    }

    3.构建并运行

    1. yomo dev从终端运行。您将看到以下消息:
    $ yomo dev
    
    ℹ️  YoMo Stream Function file: app.go
    ⌛  Create YoMo Stream Function instance...
    ⌛  YoMo Stream Function building...
    ✅  Success! YoMo Stream Function build.
    ℹ️   YoMo Stream Function is running...
    2021/11/16 10:02:43 [core:client]  has connected to yomo-app-demo (dev.yomo.run:9140)
    [localhost] 1637028164050 > value: 6.575044 ⚡️=9ms
    [StdOut]:  6.5750437
    [localhost] 1637028164151 > value: 10.076103 ⚡️=5ms
    [StdOut]:  10.076103
    [localhost] 1637028164251 > value: 15.560066 ⚡️=8ms
    [StdOut]:  15.560066
    [localhost] 1637028164352 > value: 15.330824 ⚡️=2ms
    [StdOut]:  15.330824
    [localhost] 1637028164453 > value: 10.859857 ⚡️=7ms
    [StdOut]:  10.859857

    恭喜!您已经完成了第一个 YoMo Stream Function。

    🧩互操作

    元界职场(虚拟办公室)与 YoMo

    来源

    流函数

    输出连接器

[/hidecontent]

 
免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 开源
人工智能热度不减!9月机构扎堆关注机器人,淡马锡、摩根大通、景林资产等现身
数字经济智能与安全川渝共建重点实验室:让人工智能算法更可靠更安全
累计在轨飞行215天 航天员汤洪波创新纪录
无人城配车开进物流行业,单车日送快递2000件
Meta AI首席科学家杨立昆谈DeepSeek:不是中国AI超越美国 而是开源模型超越专有模型

首页

分类

定制方案

消息

我的