#nodejs #下载 #异步HTTP #HTTP #异步 #安装器

node-js-release-info

通过版本和平台从下载服务器异步获取Node.js版本信息

5个版本 (3个稳定版)

1.1.1 2023年10月25日
1.1.0 2023年10月22日
1.0.0 2023年10月19日
0.1.1 2023年10月16日
0.1.0 2023年9月29日

#221HTTP客户端

每月下载量34次

MIT/Apache

60KB
1.5K SLoC

node-js-release-info

Latest Version Documentation CI Status

通过版本和平台从下载服务器异步获取Node.js版本信息

安装

cargo add node-js-release-info

示例

此示例使用Tokio,请确保使用以下命令安装它:

cargo add tokio --features full
use node_js_release_info::{NodeJSRelInfo, NodeJSRelInfoError};

#[tokio::main]
async fn main() -> Result<(), NodeJSRelInfoError> {
  // get a specific configuration
  let info = NodeJSRelInfo::new("20.6.1").macos().arm64().fetch().await?;
  assert_eq!(info.version, "20.6.1");
  assert_eq!(info.filename, "node-v20.6.1-darwin-arm64.tar.gz");
  assert_eq!(info.sha256, "d8ba8018d45b294429b1a7646ccbeaeb2af3cdf45b5c91dabbd93e2a2035cb46");
  assert_eq!(info.url, "https://node.org.cn/download/release/v20.6.1/node-v20.6.1-darwin-arm64.tar.gz");

  // get all supported configurations
  let all = info.fetch_all().await?;
  assert_eq!(all.len(), 24);
  assert_eq!(all[2], info);
  println!("{:?}", all);
  Ok(())
}

功能

通过json功能提供完整的json序列化和反序列化。

cargo add node-js-release-info --features json
use node_js_release_info::{NodeJSRelInfo, NodeJSRelInfoError};

#[tokio::main]
async fn main() {
  let info = NodeJSRelInfo::new("20.6.1").macos().arm64().to_owned();
  let json = serde_json::to_string(&info).unwrap();
  let info_deserialized = serde_json::from_str(&json).unwrap();
  assert_eq!(info, info_deserialized);
}

依赖关系

~6–20MB
~270K SLoC