#drive #list #api-bindings #linux #drivelist #balena

rs-drivelist

这基本上是 Balena 的 drivelist 的 Rust 实现

5 个版本

0.9.4 2024 年 8 月 4 日
0.9.3 2023 年 6 月 22 日
0.9.2 2023 年 6 月 9 日
0.9.1 2023 年 3 月 30 日
0.9.0 2023 年 3 月 29 日

#232文件系统

Download history 25/week @ 2024-05-04 22/week @ 2024-05-11 8/week @ 2024-05-18 7/week @ 2024-05-25 9/week @ 2024-06-01 40/week @ 2024-06-08 43/week @ 2024-06-15 17/week @ 2024-06-22 15/week @ 2024-06-29 34/week @ 2024-07-06 33/week @ 2024-07-13 24/week @ 2024-07-20 63/week @ 2024-07-27 140/week @ 2024-08-03 16/week @ 2024-08-10 11/week @ 2024-08-17

每月 239 下载次数

MIT/Apache

39KB
749

README

这基本上是 Balena 的 drivelist 的 Rust 实现。目前,我没有 Mac 机器,因此它只支持

  • Windows
  • Linux

crates.io MSRV MIT or Apache 2.0 licensed

准备中

在您的根项目目录下运行问题命令

cargo add "rs-drivelist"

或编辑您的 Cargo.toml 文件,并添加此行

rs-drivelist = "0.9.0"

用法

此库导出一个函数:rs_drivelist::drive_list(),它返回一个 ResultVec<DeviceDescriptor>

Windows 输出

[{
       "enumerator": "SCSI",
       "busType": "NVME",
       "busVersion": "2.0",
       "device": "\\\\.\\PhysicalDrive0",
       "devicePath": null,
       "raw": "\\\\.\\PhysicalDrive0",
       "description": "SKHynix_HFM512GDHTNI-87A0B",
       "error": null,
       "partitionTableType": "gpt",
       "size": 512110190592,
       "blockSize": 4096,
       "logicalBlockSize": 512,
       "mountpoints": [
         {
            "path": "C:\\",
            "label": null,
            "totalBytes": 136773103616,
            "availableBytes": 24087683072
         },
         {
             "path": "D:\\",
             "label": null,
             "totalBytes": 218398453760,
             "availableBytes": 35988631552
         }
      ],
      "isReadOnly": false,
      "isSystem": true,
      "isCard": false,
      "isSCSI": false,
      "isUSB": false,
      "isVirtual": false,
      "isRemovable": false,
      "isUAS": false
}]

Linux 输出

[{
    "enumerator": "lsblk:json",
    "busType": "NVME",
    "busVersion": null,
    "device": "/dev/nvme0n1",
    "devicePath": "/dev/disk/by-path/pci-0000:02:00.0-nvme-1",
    "raw": "/dev/nvme0n1",
    "description": " SKHynix_HFM512GDHTNI-87A0B SYSTEM_DRV, Mazter, Home, WINRE_DRV",
    "error": null,
    "partitionTableType": "gpt",
    "size": 512110190592,
    "blockSize": 512,
    "logicalBlockSize": 512,
    "mountpoints": [
      {
        "path": "/boot/efi",
        "label": "SYSTEM_DRV",
        "totalBytes": 583942144,
        "availableBytes": 541696000
      },
      {
        "path": "[SWAP]",
        "label": null,
        "totalBytes": null,
        "availableBytes": null
      },
      {
        "path": "/",
        "label": null,
        "totalBytes": 67317620736,
        "availableBytes": 47072321536
      },
      {
        "path": "/home",
        "label": "Home",
        "totalBytes": 67050090496,
        "availableBytes": 9986170880
      }
    ],
    "isReadOnly": false,
    "isSystem": true,
    "isCard": false,
    "isSCSI": false,
    "isUSB": false,
    "isVirtual": false,
    "isRemovable": false,
    "isUAS": null
}]

已经支持了 32 位操作系统。

捐赠

我用它启动这个项目的主要笔记本电脑坏了,我现在使用一个 Celeron N2840,带有无法升级的焊接 2GB RAM。您的捐赠将非常感谢,因为我的银行账户无法购买一台合适的机器。访问我的 Ko-fi 账户

依赖关系

~3.5–5MB
~96K SLoC