Skip to content

Latest commit

 

History

History
66 lines (49 loc) · 2.39 KB

README.md

File metadata and controls

66 lines (49 loc) · 2.39 KB

UnblockNeteaseMusic/server-rust 的 N-API binding

FOSSA Status

目前使用者文件及開發文件 仍在撰寫,在此之前有任何問題,歡迎開 Discussion 詢問。

使用

您可以直接從 https://www.npmjs.com 引用 @unblockneteasemusic/rust-napi 函式庫。 這個函式庫會協助您取回符合系統架構的套件。

就如〈架構〉所說,rust-napi 函式庫的引擎和類型定義,現階段內建在函式庫, 因此可以省去註冊引擎的步驟。但與舊版 JS 不同,UNM 輸往 console 的 logging 需手動開啟:

const UNM = require("@unblockneteasemusic/rust-napi");

// 啟用後,可以使用 `RUST_LOG` 環境變數調整 log 的詳細程度
UNM.enableLogging(UNM.LoggingType.ConsoleEnv);

然後我們可以建立一個 executor 實體,並定義想要的 context:

const executor = new UNM.Executor();
const ctx = {}; // 假如不需要任何設定
/* const ctx = { enableFlac: true }; // 每個欄位的說明資訊,現階段可參考函式庫中 `index.d.ts` 的定義。 */

接下來的使用方式與 Rust 函式庫相似:

const searchResult = await executor.search(
  // 使用所有可以使用的引擎。
  //
  // executor.list() 會列出所有可用的引擎。我們直接把這個引擎名單傳入 .search()。
  // 您亦可自訂要使用的引擎,如 ["bilibili", "kugou"]。
  //
  // 所有可使用的引擎,現階段可以參考 executor.rs 檔案中
  // construct_executor() 函式的定義。
  executor.list(),
  {
    id: "12345",
    name: "青花瓷",
    artists: [
      {
        id: "114514",
        name: "周杰伦",
      },
    ],
  },
  ctx
);

const retrieveResult = await executor.retrieve(searchResult, ctx);

設定

與 Rust 版通用的設定,請見 https://github.com/UnblockNeteaseMusic/server-rust/blob/main/README.md

授權條款

This project is licensed under LGPL-3.0-only.

FOSSA Status