#wasmcloud #actor #capability #unique-identifier #api-bindings

wasmcloud-interface-numbergen

为演员生成随机数和 GUID 的接口(wasmcloud:builtin:numbergen)

18 个版本 (10 个破坏性版本)

0.11.0 2023 年 9 月 19 日
0.10.0 2023 年 7 月 20 日
0.9.0 2023 年 4 月 12 日
0.8.1 2022 年 11 月 23 日
0.1.0 2021 年 7 月 23 日

WebAssembly 中排名第 497

Download history 11/week @ 2024-03-27 34/week @ 2024-04-03 95/week @ 2024-04-17 50/week @ 2024-04-24 2/week @ 2024-05-29 29/week @ 2024-06-05

每月下载量 280
dtbh_interface 中使用

许可 Apache-2.0 和可能 LGPL-3.0-or-later

15KB
234

crates.io  TinyGo 版本

wasmCloud 数字生成器接口

这是 wasmCloud 内置接口的定义,该接口保证所有运行时宿主都支持,wasmcloud:builtin:numbergen。数字生成器接口提供创建随机数、给定范围内的随机数以及全局唯一标识符(GUID)等功能。

功能提供者实现

没有外部实现此提供者,因为所有 wasmcloud:builtin:numbergen 合同的实现都直接构建到宿主运行时中。

此接口定义了每个我们支持的宿主运行时都附带的自定义 wasmCloud 内置日志接口。使用此接口的演员必须在他们的声明列表中包含功能合同 wasmcloud:builtin:numbergenwash claims sign --cap wasmcloud:builtin:numbergen)。

示例用法

🦀 Rust

use wasmbus_rpc::actor::prelude::*;
use wasmcloud_interface_logging::info;
use wasmcloud_interface_numbergen::{generate_guid, random_32, random_in_range};

async fn generate_random() -> Result<(), RpcError> {
    // Generate a Globally Unique ID (GUID)
    let guid: String = generate_guid().await?;
    info!("Generated GUID: {}", guid);
    // Generate a random u32
    let random_num: u32 = random_32().await?;
    info!("Generated number: {}", random_num);
    // Generate a random u32 within an inclusive range
    let random_range: u32 = random_in_range(0, 55).await?;
    info!("Generated number between 0 and 55: {}", random_range);
    Ok(())
}

🐭 Golang

import numbergen "github.com/wasmcloud/interfaces/numbergen/tinygo"

func GenerateThings(ctx *actor.Context) (string, error) {
  client := numbergen.NewProviderNumberGen()

  // Generate a random U32
  randNum, _ := client.Random32(ctx)
 
  // Generate a random U32 within an inclusive range
  randNum010, _ := client.RandomInRange(ctx, numbergen.RangeLimit{Min: 0, Max: 10})
 
  // Generate a Globally Unique ID (GUID)
  guid, _ := client.GenerateGuid(ctx)
  
  return "", nil
}

依赖项

~12–30MB
~490K SLoC