open-index/open-npm huggingface dataset:
npm package: @napi-rs/simple-git-win32-ia32-msvc
Description: This is the **i686-pc-windows-msvc** binary for `@napi-rs/simple-git`
Latest version: 0.1.22

# `@napi-rs/simple-git-win32-ia32-msvc`

This is the **i686-pc-windows-msvc** binary for `@napi-rs/simple-git`
npm package: @napi-rs/simple-git-win32-x64-msvc
Description: This is the **x86_64-pc-windows-msvc** binary for `@napi-rs/simple-git`
Latest version: 0.1.22

# `@napi-rs/simple-git-win32-x64-msvc`

This is the **x86_64-pc-windows-msvc** binary for `@napi-rs/simple-git`
npm package: @napi-rs/snappy
Description: Fastest Snappy compression library in Node.js
Latest version: 1.0.2
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# `@napi-rs/snappy`

![https://github.com/Brooooooklyn/snappy/actions](https://github.com/Brooooooklyn/snappy/workflows/CI/badge.svg)
![](https://img.shields.io/npm/dm/@napi-rs/snappy.svg?sanitize=true)

> 🚀 Help me to become a full-time open-source developer by [sponsoring me on Github](https://github.com/sponsors/Brooooooklyn)

Fastest Snappy compression library in Node.js, powered by [napi-rs](https://napi.rs) and [rust-snappy](https://github.com/BurntSushi/rust-snappy).

> For small size data, [snappyjs](https://github.com/zhipeng-jia/snappyjs) is faster, and it support browser. But it doesn't have async API, which is important for Node.js program.

## Install this package

```
yarn add @napi-rs/snappy
```

## Support matrix

|                  | node12 | node14 | node16 |
| ---------------- | ------ | ------ | ------ |
| Windows x64      | ✓      | ✓      | ✓      |
| Windows x32      | ✓      | ✓      | ✓      |
| Windows arm64    | ✓      | ✓      | ✓      |
| macOS x64        | ✓      | ✓      | ✓      |
| macOS arm64      | ✓      | ✓      | ✓      |
| Linux x64 gnu    | ✓      | ✓      | ✓      |
| Linux x64 musl   | ✓      | ✓      | ✓      |
| Linux arm gnu    | ✓      | ✓      | ✓      |
| Linux arm64 gnu  | ✓      | ✓      | ✓      |
| Linux arm64 musl | ✓      | ✓      | ✓      |
| Android arm64    | ✓      | ✓      | ✓      |
| FreeBSD x64      | ✓      | ✓      | ✓      |

## API

```ts
export function compressSync(input: Buffer | string | ArrayBuffer | Uint8Array): Buffer
export function compress(input: Buffer | string | ArrayBuffer | Uint8Array): Promise<Buffer>
export function uncompressSync(compressed: Buffer): Buffer
export function uncompress(compressed: Buffer): Promise<Buffer>
```

## Performance

### Hardware

```
OS: Windows 10 x86_64
Host: Micro-Star International Co., Ltd. MS-7C35
Kernel: 10.0.19043
Terminal: Windows Terminal
CPU: AMD Ryzen 9 5950X (32) @ 3.400GHz
Memory: 15959MiB / 32688MiB
```

### Result

```
Running "Compress data" suite...
Progress: 100%

  @napi-rs/snappy:
    333 ops/s, ±2.10%   | fastest

  snappy node:
    163 ops/s, ±1.44%   | slowest, 51.05% slower

Finished 2 cases!
  Fastest: @napi-rs/snappy
  Slowest: snappy node
Running "Uncompress data" suite...
Progress: 100%

  @napi-rs/snappy:
    980 ops/s, ±1.85%   | fastest

  snappy node:
    256 ops/s, ±0.61%   | slowest, 73.88% slower

Finished 2 cases!
  Fastest: @napi-rs/snappy
  Slowest: snappy node

Running "Small size sync compress" suite...
Progress: 100%

  @napi-rs/snappy:
    505 211 ops/s, ±7.97%   | slowest, 47% slower

  snappy js:
    953 272 ops/s, ±0.37%   | fastest

Finished 2 cases!
  Fastest: snappy js
  Slowest: @napi-rs/snappy
```
npm package: @napi-rs/ssh
Description: ![CI](https://github.com/Brooooooklyn/ssh/workflows/CI/badge.svg) [![install size](https://packagephobia.com/badge?p=@napi-rs/ssh)](https://packagephobia.com/result?p=@napi-rs/ssh) [![Downloads](https://img.shields.io/npm/dm/@napi-rs/ssh.svg?sanitize=true
Latest version: 0.0.1

# `@napi-rs/ssh`

![CI](https://github.com/Brooooooklyn/ssh/workflows/CI/badge.svg)
[![install size](https://packagephobia.com/badge?p=@napi-rs/ssh)](https://packagephobia.com/result?p=@napi-rs/ssh)
[![Downloads](https://img.shields.io/npm/dm/@napi-rs/ssh.svg?sanitize=true)](https://npmcharts.com/compare/@napi-rs/ssh?minimal=true)

> 🚀 Help me to become a full-time open-source developer by [sponsoring me on Github](https://github.com/sponsors/Brooooooklyn)

## Usage

```js
import { connect, checkKnownHosts } from './index.js'

const host = '192.168.65.3'
const port = 22

const client = await connect(`${host}:${port}`, {
  checkServerKey: (key) => {
    return checkKnownHosts(host, port, key)
  }
})

await client.authenticateKeyPair('lyn')

const { status, output } = await client.exec('ls -la')
console.log(status, output.toString('utf8'))

// 0 total 292
// drwxr-x--- 11 lyn  lyn    4096 Jan 23 06:39 .
// drwxr-xr-x  3 root root   4096 Jan 19 06:50 ..
// -rw-------  1 lyn  lyn    2065 Jan 20 03:11 .bash_history
// -rw-r--r--  1 lyn  lyn     220 Jan  6  2022 .bash_logout
// -rw-r--r--  1 lyn  lyn    3792 Jan 19 09:11 .bashrc
// drwx------  5 lyn  lyn    4096 Jan 20 03:28 .cache
// -rw-r--r--  1 lyn  lyn     828 Jan 19 09:11 .profile
// drwx------  2 lyn  lyn    4096 Jan 19 09:07 .ssh
// drwxrwxr-x  3 lyn  lyn    4096 Jan 19 09:59 .yarn
// -rw-r--r--  1 lyn  lyn    3922 Jan 20 03:30 .zshrc
```
npm package: @napi-rs/ssh-freebsd-x64
Description: This is the **x86_64-unknown-freebsd** binary for `@napi-rs/ssh`
Latest version: 0.0.1

# `@napi-rs/ssh-freebsd-x64`

This is the **x86_64-unknown-freebsd** binary for `@napi-rs/ssh`
npm package: @napi-rs/ssh-linux-arm-gnueabihf
Description: This is the **armv7-unknown-linux-gnueabihf** binary for `@napi-rs/ssh`
Latest version: 0.0.1

# `@napi-rs/ssh-linux-arm-gnueabihf`

This is the **armv7-unknown-linux-gnueabihf** binary for `@napi-rs/ssh`
npm package: @napi-rs/ssh-linux-arm64-musl
Description: This is the **aarch64-unknown-linux-musl** binary for `@napi-rs/ssh`
Latest version: 0.0.1

# `@napi-rs/ssh-linux-arm64-musl`

This is the **aarch64-unknown-linux-musl** binary for `@napi-rs/ssh`
npm package: @napi-rs/ssh-linux-x64-gnu
Description: This is the **x86_64-unknown-linux-gnu** binary for `@napi-rs/ssh`
Latest version: 0.0.1

# `@napi-rs/ssh-linux-x64-gnu`

This is the **x86_64-unknown-linux-gnu** binary for `@napi-rs/ssh`
npm package: @napi-rs/ssh-linux-x64-musl
Description: This is the **x86_64-unknown-linux-musl** binary for `@napi-rs/ssh`
Latest version: 0.0.1

# `@napi-rs/ssh-linux-x64-musl`

This is the **x86_64-unknown-linux-musl** binary for `@napi-rs/ssh`
npm package: @napi-rs/ssh-win32-arm64-msvc
Description: This is the **aarch64-pc-windows-msvc** binary for `@napi-rs/ssh`
Latest version: 0.0.1

# `@napi-rs/ssh-win32-arm64-msvc`

This is the **aarch64-pc-windows-msvc** binary for `@napi-rs/ssh`
npm package: @napi-rs/ssh-win32-ia32-msvc
Description: This is the **i686-pc-windows-msvc** binary for `@napi-rs/ssh`
Latest version: 0.0.1

# `@napi-rs/ssh-win32-ia32-msvc`

This is the **i686-pc-windows-msvc** binary for `@napi-rs/ssh`
npm package: @napi-rs/ssh-win32-x64-msvc
Description: This is the **x86_64-pc-windows-msvc** binary for `@napi-rs/ssh`
Latest version: 0.0.1

# `@napi-rs/ssh-win32-x64-msvc`

This is the **x86_64-pc-windows-msvc** binary for `@napi-rs/ssh`
npm package: @napi-rs/sysinfo
Description: Query system information
Latest version: 1.0.0

# `@napi-rs/sysinfo`

![CI](https://github.com/Brooooooklyn/sysinfo/workflows/CI/badge.svg)
[![install size](https://packagephobia.com/badge?p=@napi-rs/sysinfo)](https://packagephobia.com/result?p=@napi-rs/sysinfo)
[![Downloads](https://img.shields.io/npm/dm/@napi-rs/sysinfo.svg?sanitize=true)](https://npmcharts.com/compare/@napi-rs/sysinfo?minimal=true)

> 🚀 Help me to become a full-time open-source developer by [sponsoring me on Github](https://github.com/sponsors/Brooooooklyn)

## `cpuFeatures`

```js
import { cpuFeatures } from '@napi-rs/sysinfo'

console.log(cpuFeatures())
```
<details>
  <summary>
    <code>cpuFeatures()</code> output
  </summary>

```js
{
  arch: 'aarch64',
  brand: 'Apple M1 Max',
  flags: {
    asimd: true,
    pmull: false,
    fp: true,
    fp16: true,
    sve: false,
    crc: true,
    lse: true,
    lse2: false,
    rdm: true,
    rcpc: true,
    rcpc2: true,
    dotprod: true,
    tme: false,
    fhm: true,
    dit: true,
    flagm: true,
    ssbs: true,
    sb: true,
    paca: true,
    pacg: true,
    dpb: true,
    dpb2: true,
    sve2: false,
    sve2Aes: false,
    sve2Sm4: false,
    sve2Sha3: false,
    sve2Bitperm: false,
    frintts: true,
    i8Mm: false,
    f32Mm: false,
    f64Mm: false,
    bf16: false,
    rand: false,
    bti: false,
    mte: false,
    jsconv: true,
    fcma: true,
    aes: true,
    sha2: true,
    sha3: true,
    sm4: false
  }
}
```
</details>

## `sysinfo`

### `CPU info`

```js
import { SysInfo } from '@napi-rs/sysinfo'

const sysinfo = new SysInfo()

for (const cpu of sysinfo.cpus()) {
  console.log(cpu.brand(), cpu.name(), cpu.frequency())
}
// Apple M1 Max cpu0 2427
// Apple M1 Max cpu1 2427
// Apple M1 Max cpu2 3298
// Apple M1 Max cpu3 3298
// Apple M1 Max cpu4 3298
// Apple M1 Max cpu5 3298
// Apple M1 Max cpu6 3298
// Apple M1 Max cpu7 3298
// Apple M1 Max cpu8 3298
// Apple M1 Max cpu9 3298
```
npm package: @napi-rs/system-ocr
Description: OCR via system provided API
Latest version: 1.0.2

# `@napi-rs/system-ocr`

![https://github.com/Brooooooklyn/system-ocr/actions](https://github.com/Brooooooklyn/system-ocr/workflows/CI/badge.svg)

> OCR library that uses system provided API. `VisionKit` on macOS, `Media OCR` on Windows.

## Example

```js
node example/index.js
```

| Example                      | Result                      |
| ---------------------------- | --------------------------- |
| ![example](./example/zh.png) | ![result](./example.png)    |
| ![example](./example/fr.png) | ![result](./example_fr.png) |

## Usage

### Install

```
pnpm add @napi-rs/system-ocr
yarn install @napi-rs/system-ocr
npm install @napi-rs/system-ocr
```

### API

```ts
import { recognize } from '@napi-rs/system-ocr'

const result = await recognize('path/to/image.png')
```

```ts
import { recognize, OcrAccuracy } from '@napi-rs/system-ocr'

const image = await fetch('https://example.com/image.png')

const result = await recognize(image, OcrAccuracy.Accurate, ['fr', 'zh-cn'])
```

## Credits

Huge thanks to:

- [win-ocr-rs](https://github.com/JichouP/win-ocr-rs)
- [mac-system-ocr](https://github.com/DeJeune/mac-system-ocr)
npm package: @napi-rs/system-shutdown
Description: This package provides a cross platform way to shut down, reboot or log out operations.
Author: LongYinan
Latest version: 1.0.0

# `@napi-rs/system-shutdown`

This package provides a cross platform way to shut down, reboot or log out operations.

Supported platforms: `Linux`, `Windows` and `macOS`.

# API

```ts
export function shutdown(): void
export function forceShutdown(): void
export function reboot(): void
export function forceReboot(): void
export function logout(): void
export function forceLogout(): void
export function sleep(): void
export function hibernate(): void
```
npm package: @napi-rs/system-shutdown-darwin-arm64
Description: This is the **aarch64-apple-darwin** binary for `@napi-rs/system-shutdown`
Author: LongYinan
Latest version: 1.0.0

# `@napi-rs/system-shutdown-darwin-arm64`

This is the **aarch64-apple-darwin** binary for `@napi-rs/system-shutdown`
npm package: @napi-rs/system-shutdown-darwin-x64
Description: This is the **x86_64-apple-darwin** binary for `@napi-rs/system-shutdown`
Author: LongYinan
Latest version: 1.0.0

# `@napi-rs/system-shutdown-darwin-x64`

This is the **x86_64-apple-darwin** binary for `@napi-rs/system-shutdown`
npm package: @napi-rs/system-shutdown-linux-arm-gnueabihf
Description: This is the **armv7-unknown-linux-gnueabihf** binary for `@napi-rs/system-shutdown`
Author: LongYinan
Latest version: 1.0.0

# `@napi-rs/system-shutdown-linux-arm-gnueabihf`

This is the **armv7-unknown-linux-gnueabihf** binary for `@napi-rs/system-shutdown`
npm package: @napi-rs/system-shutdown-linux-arm64-gnu
Description: This is the **aarch64-unknown-linux-gnu** binary for `@napi-rs/system-shutdown`
Author: LongYinan
Latest version: 1.0.0

# `@napi-rs/system-shutdown-linux-arm64-gnu`

This is the **aarch64-unknown-linux-gnu** binary for `@napi-rs/system-shutdown`
npm package: @napi-rs/system-shutdown-linux-arm64-musl
Description: This is the **aarch64-unknown-linux-musl** binary for `@napi-rs/system-shutdown`
Author: LongYinan
Latest version: 1.0.0

# `@napi-rs/system-shutdown-linux-arm64-musl`

This is the **aarch64-unknown-linux-musl** binary for `@napi-rs/system-shutdown`
npm package: @napi-rs/system-shutdown-linux-x64-gnu
Description: This is the **x86_64-unknown-linux-gnu** binary for `@napi-rs/system-shutdown`
Author: LongYinan
Latest version: 1.0.0

# `@napi-rs/system-shutdown-linux-x64-gnu`

This is the **x86_64-unknown-linux-gnu** binary for `@napi-rs/system-shutdown`
npm package: @napi-rs/system-shutdown-linux-x64-musl
Description: This is the **x86_64-unknown-linux-musl** binary for `@napi-rs/system-shutdown`
Author: LongYinan
Latest version: 1.0.0

# `@napi-rs/system-shutdown-linux-x64-musl`

This is the **x86_64-unknown-linux-musl** binary for `@napi-rs/system-shutdown`
npm package: @napi-rs/system-shutdown-win32-arm64-msvc
Description: This is the **aarch64-pc-windows-msvc** binary for `@napi-rs/system-shutdown`
Author: LongYinan
Latest version: 1.0.0

# `@napi-rs/system-shutdown-win32-arm64-msvc`

This is the **aarch64-pc-windows-msvc** binary for `@napi-rs/system-shutdown`
npm package: @napi-rs/system-shutdown-win32-ia32-msvc
Description: This is the **i686-pc-windows-msvc** binary for `@napi-rs/system-shutdown`
Author: LongYinan
Latest version: 1.0.0

# `@napi-rs/system-shutdown-win32-ia32-msvc`

This is the **i686-pc-windows-msvc** binary for `@napi-rs/system-shutdown`
npm package: @napi-rs/system-shutdown-win32-x64-msvc
Description: This is the **x86_64-pc-windows-msvc** binary for `@napi-rs/system-shutdown`
Author: LongYinan
Latest version: 1.0.0

# `@napi-rs/system-shutdown-win32-x64-msvc`

This is the **x86_64-pc-windows-msvc** binary for `@napi-rs/system-shutdown`
npm package: @napi-rs/tar-linux-arm-gnueabihf
Description: Node.js tar binding https://docs.rs/tar/latest/tar/
Latest version: 1.1.0

# `@napi-rs/tar-linux-arm-gnueabihf`

This is the **armv7-unknown-linux-gnueabihf** binary for `@napi-rs/tar`
npm package: @napi-rs/triples
Description: Rust target triples objects
Author: LongYinan
Latest version: 2.1.8

# `@napi-rs/triples`

[![install size](https://packagephobia.com/badge?p=@napi-rs/triples)](https://packagephobia.com/result?p=@napi-rs/triples)
[![Downloads](https://img.shields.io/npm/dm/@napi-rs/triples.svg?sanitize=true)](https://npmcharts.com/compare/@napi-rs/triples?minimal=true)

> Rust build triples definitions

## Usage

```js
const triples = require('@napi-rs/triples');

console.log(triples)

[
  ...
  'aarch64-apple-ios': {
    platform: 'ios',
    arch: 'arm64',
    abi: null,
    platformArchABI: 'ios-arm64',
    raw: 'aarch64-apple-ios',
  },
  'aarch64-fuchsia': {
    platform: 'fuchsia',
    arch: 'arm64',
    abi: null,
    platformArchABI: 'fuchsia-arm64',
    raw: 'aarch64-fuchsia',
  },
  'aarch64-linux-android': {
    platform: 'android',
    arch: 'arm64',
    abi: null,
    platformArchABI: 'android-arm64',
    raw: 'aarch64-linux-android',
  },
  'aarch64-pc-windows-msvc': {
    platform: 'win32',
    arch: 'arm64',
    abi: 'msvc',
    platformArchABI: 'win32-arm64-msvc',
    raw: 'aarch64-pc-windows-msvc',
  },
  'aarch64-unknown-linux-gnu': {
    platform: 'linux',
    arch: 'arm64',
    abi: 'gnu',
    platformArchABI: 'linux-arm64-gnu',
    raw: 'aarch64-unknown-linux-gnu',
  },
  'aarch64-unknown-linux-musl': {
    platform: 'linux',
    arch: 'arm64',
    abi: 'musl',
    platformArchABI: 'linux-arm64-musl',
    raw: 'aarch64-unknown-linux-musl',
  },
  'aarch64-unknown-none': {
    platform: 'none',
    arch: 'arm64',
    abi: null,
    platformArchABI: 'none-arm64',
    raw: 'aarch64-unknown-none',
  },
  'aarch64-unknown-none-softfloat': {
    platform: 'none',
    arch: 'arm64',
    abi: 'softfloat',
    platformArchABI: 'none-arm64-softfloat',
    raw: 'aarch64-unknown-none-softfloat',
  }
  ...
]
```
npm package: @napi-rs/ttf2woff2
Description: ![CI](https://github.com/Brooooooklyn/ttf2woff2/workflows/CI/badge.svg) [![install size](https://packagephobia.com/badge?p=@napi-rs/ttf2woff2)](https://packagephobia.com/result?p=@napi-rs/ttf2woff2) [![Downloads](https://img.shields.io/npm/dm/@napi-rs/ttf
Latest version: 0.0.5

# `@napi-rs/ttf2woff2`

![CI](https://github.com/Brooooooklyn/ttf2woff2/workflows/CI/badge.svg)
[![install size](https://packagephobia.com/badge?p=@napi-rs/ttf2woff2)](https://packagephobia.com/result?p=@napi-rs/ttf2woff2)
[![Downloads](https://img.shields.io/npm/dm/@napi-rs/ttf2woff2.svg?sanitize=true)](https://npmcharts.com/compare/@napi-rs/ttf2woff2?minimal=true)

> 🚀 Help me to become a full-time open-source developer by [sponsoring me on Github](https://github.com/sponsors/Brooooooklyn)

## Usage

```js
import { join } from 'path'
import { fileURLToPath } from 'url'

import { convertTTFToWOFF2 } from '@napi-rs/ttf2woff2'

const fixture = await readFile(join(fileURLToPath(import.meta.url), '..', './iconsfont.ttf'))

convertTTFToWOFF2(fixture)
```

## [Example](example/index.mjs)

```shell
node example/index.mjs

✨ Done in 2460.2297090291977 ms
TTF font length  :  1654412
WOFF2 font length:  729564
```

Then open the [example HTML](example/index.html) in your browser, you can test the converted WOFF2 fonts.
npm package: @napi-rs/ttf2woff2-android-arm-eabi
Description: This is the **armv7-linux-androideabi** binary for `@napi-rs/ttf2woff2`
Latest version: 0.0.5

# `@napi-rs/ttf2woff2-android-arm-eabi`

This is the **armv7-linux-androideabi** binary for `@napi-rs/ttf2woff2`
npm package: @napi-rs/ttf2woff2-android-arm64
Description: This is the **aarch64-linux-android** binary for `@napi-rs/ttf2woff2`
Latest version: 0.0.5

# `@napi-rs/ttf2woff2-android-arm64`

This is the **aarch64-linux-android** binary for `@napi-rs/ttf2woff2`
npm package: @napi-rs/ttf2woff2-darwin-arm64
Description: This is the **aarch64-apple-darwin** binary for `@napi-rs/ttf2woff2`
Latest version: 0.0.5

# `@napi-rs/ttf2woff2-darwin-arm64`

This is the **aarch64-apple-darwin** binary for `@napi-rs/ttf2woff2`
npm package: @napi-rs/ttf2woff2-darwin-x64
Description: This is the **x86_64-apple-darwin** binary for `@napi-rs/ttf2woff2`
Latest version: 0.0.5

# `@napi-rs/ttf2woff2-darwin-x64`

This is the **x86_64-apple-darwin** binary for `@napi-rs/ttf2woff2`
npm package: @napi-rs/ttf2woff2-linux-arm64-gnu
Description: This is the **aarch64-unknown-linux-gnu** binary for `@napi-rs/ttf2woff2`
Latest version: 0.0.5

# `@napi-rs/ttf2woff2-linux-arm64-gnu`

This is the **aarch64-unknown-linux-gnu** binary for `@napi-rs/ttf2woff2`
npm package: @napi-rs/ttf2woff2-linux-arm64-musl
Description: This is the **aarch64-unknown-linux-musl** binary for `@napi-rs/ttf2woff2`
Latest version: 0.0.5

# `@napi-rs/ttf2woff2-linux-arm64-musl`

This is the **aarch64-unknown-linux-musl** binary for `@napi-rs/ttf2woff2`
npm package: @napi-rs/ttf2woff2-linux-x64-gnu
Description: This is the **x86_64-unknown-linux-gnu** binary for `@napi-rs/ttf2woff2`
Latest version: 0.0.5

# `@napi-rs/ttf2woff2-linux-x64-gnu`

This is the **x86_64-unknown-linux-gnu** binary for `@napi-rs/ttf2woff2`
npm package: @napi-rs/ttf2woff2-linux-x64-musl
Description: This is the **x86_64-unknown-linux-musl** binary for `@napi-rs/ttf2woff2`
Latest version: 0.0.5

# `@napi-rs/ttf2woff2-linux-x64-musl`

This is the **x86_64-unknown-linux-musl** binary for `@napi-rs/ttf2woff2`
npm package: @napi-rs/ttf2woff2-win32-arm64-msvc
Description: This is the **aarch64-pc-windows-msvc** binary for `@napi-rs/ttf2woff2`
Latest version: 0.0.5

# `@napi-rs/ttf2woff2-win32-arm64-msvc`

This is the **aarch64-pc-windows-msvc** binary for `@napi-rs/ttf2woff2`
npm package: @napi-rs/ttf2woff2-win32-ia32-msvc
Description: This is the **i686-pc-windows-msvc** binary for `@napi-rs/ttf2woff2`
Latest version: 0.0.5

# `@napi-rs/ttf2woff2-win32-ia32-msvc`

This is the **i686-pc-windows-msvc** binary for `@napi-rs/ttf2woff2`
npm package: @napi-rs/ttf2woff2-win32-x64-msvc
Description: This is the **x86_64-pc-windows-msvc** binary for `@napi-rs/ttf2woff2`
Latest version: 0.0.5

# `@napi-rs/ttf2woff2-win32-x64-msvc`

This is the **x86_64-pc-windows-msvc** binary for `@napi-rs/ttf2woff2`
npm package: @napi-rs/uuid
Description: ![CI](https://github.com/Brooooooklyn/uuid/workflows/CI/badge.svg) [![install size](https://packagephobia.com/badge?p=@napi-rs/uuid)](https://packagephobia.com/result?p=@napi-rs/uuid) [![Downloads](https://img.shields.io/npm/dm/@napi-rs/uuid.svg?sanitize=
Latest version: 0.2.2

# `@napi-rs/uuid`

![CI](https://github.com/Brooooooklyn/uuid/workflows/CI/badge.svg)
[![install size](https://packagephobia.com/badge?p=@napi-rs/uuid)](https://packagephobia.com/result?p=@napi-rs/uuid)
[![Downloads](https://img.shields.io/npm/dm/@napi-rs/uuid.svg?sanitize=true)](https://npmcharts.com/compare/@napi-rs/uuid?minimal=true)

Fastest **_[RFC4122](http://www.ietf.org/rfc/rfc4122.txt)_** generator for Node.js. Only `v4` available for now.

> 🚀 Help me to become a full-time open-source developer by [sponsoring me on Github](https://github.com/sponsors/Brooooooklyn)

## Install

```bash
yarn add @napi-rs/uuid
npm install @napi-rs/uuid
pnpm install @napi-rs/uuid
```

## Performance

```
Running "UID string" suite...
Progress: 100%

  crypto.randomUUID:
    810 767 ops/s, ±0.50%      | slowest, 92.69% slower

  napi-uuid-v4:
    11 084 015 ops/s, ±0.43%   | fastest

  @lukeed/uuid:
    7 506 916 ops/s, ±0.69%    | 32.27% slower

  nanoid:
    5 736 698 ops/s, ±0.54%    | 48.24% slower

  uuid-js:
    1 855 307 ops/s, ±0.30%    | 83.26% slower

Finished 5 cases!
  Fastest: napi-uuid-v4
  Slowest: crypto.randomUUID
```

### Hardware

```
OS: Ubuntu 20.04.3 LTS on Windows 10 x86_64
Host: Micro-Star International Co., Ltd. MS-7C35
Kernel: 5.10.60.1-microsoft-standard-WSL2
Terminal: Windows Terminal
CPU: AMD Ryzen 9 5950X (32) @ 3.400GHz
Memory: 23839MiB / 32688MiB
```

## API

```ts
import { v4 } from "@napi-rs/uuid";

console.log(v4()); // eb4ffe32-2232-422a-933f-b905c0dfea84
```

## Support matrix

|                       | node12 | node14 | node16 |
| --------------------- | ------ | ------ | ------ |
| Windows x64           | ✓      | ✓      | ✓      |
| Windows arm64         | ✓      | ✓      | ✓      |
| macOS x64             | ✓      | ✓      | ✓      |
| macOS arm64 (m chips) | ✓      | ✓      | ✓      |
| Linux x64 gnu         | ✓      | ✓      | ✓      |
| Linux x64 musl        | ✓      | ✓      | ✓      |
| Linux arm gnu         | ✓      | ✓      | ✓      |
| Linux arm64 gnu       | ✓      | ✓      | ✓      |
| Linux arm64 musl      | ✓      | ✓      | ✓      |
| Android arm64         | ✓      | ✓      | ✓      |
| Android armv7         | ✓      | ✓      | ✓      |
| FreeBSD x64           | ✓      | ✓      | ✓      |
npm package: @napi-rs/uuid-freebsd-x64
Description: This is the **x86_64-unknown-freebsd** binary for `@napi-rs/uuid`
Latest version: 0.2.2

# `@napi-rs/uuid-freebsd-x64`

This is the **x86_64-unknown-freebsd** binary for `@napi-rs/uuid`
npm package: @napi-rs/uuid-linux-arm-gnueabihf
Description: This is the **armv7-unknown-linux-gnueabihf** binary for `@napi-rs/uuid`
Latest version: 0.2.2

# `@napi-rs/uuid-linux-arm-gnueabihf`

This is the **armv7-unknown-linux-gnueabihf** binary for `@napi-rs/uuid`
npm package: @napi-rs/uuid-linux-arm64-musl
Description: This is the **aarch64-unknown-linux-musl** binary for `@napi-rs/uuid`
Latest version: 0.2.2

# `@napi-rs/uuid-linux-arm64-musl`

This is the **aarch64-unknown-linux-musl** binary for `@napi-rs/uuid`
npm package: @napi-rs/uuid-linux-x64-gnu
Description: This is the **x86_64-unknown-linux-gnu** binary for `@napi-rs/uuid`
Latest version: 0.2.2

# `@napi-rs/uuid-linux-x64-gnu`

This is the **x86_64-unknown-linux-gnu** binary for `@napi-rs/uuid`
npm package: @napi-rs/uuid-linux-x64-musl
Description: This is the **x86_64-unknown-linux-musl** binary for `@napi-rs/uuid`
Latest version: 0.2.2

# `@napi-rs/uuid-linux-x64-musl`

This is the **x86_64-unknown-linux-musl** binary for `@napi-rs/uuid`
npm package: @napi-rs/uuid-win32-arm64-msvc
Description: This is the **aarch64-pc-windows-msvc** binary for `@napi-rs/uuid`
Latest version: 0.2.2

# `@napi-rs/uuid-win32-arm64-msvc`

This is the **aarch64-pc-windows-msvc** binary for `@napi-rs/uuid`
npm package: @napi-rs/uuid-win32-ia32-msvc
Description: This is the **i686-pc-windows-msvc** binary for `@napi-rs/uuid`
Latest version: 0.2.2

# `@napi-rs/uuid-win32-ia32-msvc`

This is the **i686-pc-windows-msvc** binary for `@napi-rs/uuid`
npm package: @napi-rs/uuid-win32-x64-msvc
Description: This is the **x86_64-pc-windows-msvc** binary for `@napi-rs/uuid`
Latest version: 0.2.2

# `@napi-rs/uuid-win32-x64-msvc`

This is the **x86_64-pc-windows-msvc** binary for `@napi-rs/uuid`
npm package: @napi-rs/wasm-tools
Description: https://github.com/rustwasm/walrus bindings
Latest version: 1.0.1

# `@napi-rs/wasm-tools`

![https://github.com/napi-rs/wasm-tools/actions](https://github.com/napi-rs/wasm-tools/workflows/CI/badge.svg)

> https://github.com/rustwasm/walrus bindings

## Install this package

```
pnpm add @napi-rs/wasm-tools -D
yarn add @napi-rs/wasm-tools -D
```

## Usage

```ts
// Generate dwarf info and emit wasm

import { join } from 'node:path'
import { readFile, writeFile } from 'node:fs/promises'
import { fileURLToPath } from 'node:url'

import { ModuleConfig } from '@napi-rs/wasm-tools'

const __dirname = join(fileURLToPath(import.meta.url), '..')

const wasm = await readFile(join(__dirname, 'panic.wasm32-wasi.wasm'))

const binary = new ModuleConfig()
  .generateDwarf(true)
  .generateNameSection(true)
  .generateProducersSection(true)
  .preserveCodeTransform(true)
  .parse(wasm)
  .emitWasm(true)

await writeFile(join(__dirname, 'panic.wasm32-wasi.wasm'), binary)
```
npm package: @napi-rs/wasm-tools-linux-x64-musl
Description: https://github.com/rustwasm/walrus bindings
Latest version: 1.0.1

# `@napi-rs/wasm-tools-linux-x64-musl`

This is the **x86_64-unknown-linux-musl** binary for `@napi-rs/wasm-tools`
npm package: @napi-rs/wasm-tools-win32-arm64-msvc
Description: https://github.com/rustwasm/walrus bindings
Latest version: 1.0.1

# `@napi-rs/wasm-tools-win32-arm64-msvc`

This is the **aarch64-pc-windows-msvc** binary for `@napi-rs/wasm-tools`
npm package: @napi-rs/wasm-tools-win32-ia32-msvc
Description: https://github.com/rustwasm/walrus bindings
Latest version: 1.0.1

# `@napi-rs/wasm-tools-win32-ia32-msvc`

This is the **i686-pc-windows-msvc** binary for `@napi-rs/wasm-tools`
npm package: @napi-rs/wasm-tools-win32-x64-msvc
Description: https://github.com/rustwasm/walrus bindings
Latest version: 1.0.1

# `@napi-rs/wasm-tools-win32-x64-msvc`

This is the **x86_64-pc-windows-msvc** binary for `@napi-rs/wasm-tools`
npm package: @napi-rs/webcodecs-linux-arm-gnueabihf
Description: WebCodecs API implementation for Node.js using FFmpeg
Latest version: 1.3.1

# `@napi-rs/webcodecs-linux-arm-gnueabihf`

This is the **armv7-unknown-linux-gnueabihf** binary for `@napi-rs/webcodecs`
npm package: @napi-rs/whisper
Description: Run Whisper on Node.js
Latest version: 0.0.4

# `@napi-rs/whisper`

![https://github.com/Brooooooklyn/whisper-node/actions](https://github.com/Brooooooklyn/whisper-node/workflows/CI/badge.svg)

## Usage

> [!IMPORTANT]
> This package is working in progress, and only support macOS now.
> Download the whisper model before use it.

### Download Whisper Model

```bash
./scripts/download-ggml-model.sh large-v3-turbo
```

### Speech to Text

```js
import { readFile } from 'node:fs/promises'
import { join } from 'node:path'
import { fileURLToPath } from 'node:url'

import { Whisper, WhisperFullParams, WhisperSamplingStrategy, decodeAudioAsync } from './index.js'

const rootDir = join(fileURLToPath(import.meta.url), '..')

const GGLM_LARGE = await readFile(join(rootDir, 'ggml-large-v3-turbo.bin'))

const audio = await readFile(join(rootDir, '__test__/rolldown.wav'))

const whisper = new Whisper(GGLM_LARGE)

const audioBuffer = await decodeAudioAsync(audio, 'rolldown.wav')

const whisperParams = new WhisperFullParams(WhisperSamplingStrategy.Greedy)
whisperParams.language = 'en'
whisperParams.printProgress = true
whisperParams.singleSegment = false
whisperParams.durationMs = 0
whisperParams.printRealtime = true
whisperParams.onEncoderBegin = (state) => {
  console.info(Whisper.lang(state.fullLangId))
}
whisperParams.onProgress = (progress) => {
  console.info(`Progress: ${progress}`)
}
whisperParams.onNewSegment = (segment) => {
  console.info(segment)
}

const output = whisper.full(whisperParams, audioBuffer)

console.info(output)
// Rolldown is a JavaScript/TypeScript bundler written in Rust intended to serve as the future bundler used in Vite.
```

### decode audio

> [!TIP]
> This package provide a convenient function to decode various audio format to PCM buffer.

There are many audio formats supports, full list can be found in [Symphonia homepage](https://github.com/pdeljanov/Symphonia?tab=readme-ov-file#status)

```js
import { readFile } from 'node:fs/promises'
import { join } from 'node:path'
import { fileURLToPath } from 'node:url'

import { decodeAudioAsync } from './index.js'

const rootDir = join(fileURLToPath(import.meta.url), '..')

const audio = await readFile(join(rootDir, '__test__/rolldown.wav'))

// there is also a sync version: `decodeAudio`
const audioBuffer = await decodeAudioAsync(audio, 'rolldown.wav')
```
npm package: @napi-rs/woff-build
Description: [![CI](https://github.com/Brooooooklyn/woff-build/actions/workflows/CI.yml/badge.svg)](https://github.com/Brooooooklyn/woff-build/actions/workflows/CI.yml) [![install size](https://packagephobia.com/badge?p=@napi-rs/woff-build)](https://packagephobia.com/
Latest version: 0.2.2

# `@napi-rs/woff-build`

[![CI](https://github.com/Brooooooklyn/woff-build/actions/workflows/CI.yml/badge.svg)](https://github.com/Brooooooklyn/woff-build/actions/workflows/CI.yml)
[![install size](https://packagephobia.com/badge?p=@napi-rs/woff-build)](https://packagephobia.com/result?p=@napi-rs/woff-build)
[![Downloads](https://img.shields.io/npm/dm/@napi-rs/woff-build.svg?sanitize=true)](https://npmcharts.com/compare/@napi-rs/woff-build?minimal=true)

> 🚀 Help me to become a full-time open-source developer by [sponsoring me on Github](https://github.com/sponsors/Brooooooklyn)

## Usage

```js
import { join } from 'path'
import { fileURLToPath } from 'url'

import { convertTTFToWOFF2 } from '@napi-rs/woff-build'

const fixture = await readFile(join(fileURLToPath(import.meta.url), '..', './iconsfont.ttf'))

convertTTFToWOFF2(fixture)
```

## [Example](example/index.mjs)

```shell
node example/index.mjs

✨ Done in 2460.2297090291977 ms
TTF font length  :  1654412
WOFF2 font length:  729564
```

Then open the [example HTML](example/index.html) in your browser, you can test the converted WOFF2 fonts.
npm package: @napi-rs/woff-build-android-arm-eabi
Description: This is the **armv7-linux-androideabi** binary for `@napi-rs/woff-build`
Latest version: 0.2.2

# `@napi-rs/woff-build-android-arm-eabi`

This is the **armv7-linux-androideabi** binary for `@napi-rs/woff-build`
npm package: @napi-rs/woff-build-android-arm64
Description: This is the **aarch64-linux-android** binary for `@napi-rs/woff-build`
Latest version: 0.2.2

# `@napi-rs/woff-build-android-arm64`

This is the **aarch64-linux-android** binary for `@napi-rs/woff-build`
npm package: @napi-rs/woff-build-darwin-arm64
Description: This is the **aarch64-apple-darwin** binary for `@napi-rs/woff-build`
Latest version: 0.2.2

# `@napi-rs/woff-build-darwin-arm64`

This is the **aarch64-apple-darwin** binary for `@napi-rs/woff-build`
npm package: @napi-rs/woff-build-darwin-x64
Description: This is the **x86_64-apple-darwin** binary for `@napi-rs/woff-build`
Latest version: 0.2.2

# `@napi-rs/woff-build-darwin-x64`

This is the **x86_64-apple-darwin** binary for `@napi-rs/woff-build`
npm package: @napi-rs/woff-build-linux-arm64-gnu
Description: This is the **aarch64-unknown-linux-gnu** binary for `@napi-rs/woff-build`
Latest version: 0.2.2

# `@napi-rs/woff-build-linux-arm64-gnu`

This is the **aarch64-unknown-linux-gnu** binary for `@napi-rs/woff-build`
npm package: @napi-rs/woff-build-linux-arm64-musl
Description: This is the **aarch64-unknown-linux-musl** binary for `@napi-rs/woff-build`
Latest version: 0.2.2

# `@napi-rs/woff-build-linux-arm64-musl`

This is the **aarch64-unknown-linux-musl** binary for `@napi-rs/woff-build`
npm package: @napi-rs/woff-build-linux-x64-gnu
Description: This is the **x86_64-unknown-linux-gnu** binary for `@napi-rs/woff-build`
Latest version: 0.2.2

# `@napi-rs/woff-build-linux-x64-gnu`

This is the **x86_64-unknown-linux-gnu** binary for `@napi-rs/woff-build`
npm package: @napi-rs/woff-build-linux-x64-musl
Description: This is the **x86_64-unknown-linux-musl** binary for `@napi-rs/woff-build`
Latest version: 0.2.2

# `@napi-rs/woff-build-linux-x64-musl`

This is the **x86_64-unknown-linux-musl** binary for `@napi-rs/woff-build`
npm package: @napi-rs/woff-build-wasm32-wasi
Description: This is the **wasm32-wasip1-threads** binary for `@napi-rs/woff-build`
Latest version: 0.2.2

# `@napi-rs/woff-build-wasm32-wasi`

This is the **wasm32-wasip1-threads** binary for `@napi-rs/woff-build`
npm package: @napi-rs/woff-build-win32-arm64-msvc
Description: This is the **aarch64-pc-windows-msvc** binary for `@napi-rs/woff-build`
Latest version: 0.2.2

# `@napi-rs/woff-build-win32-arm64-msvc`

This is the **aarch64-pc-windows-msvc** binary for `@napi-rs/woff-build`
npm package: @napi-rs/woff-build-win32-ia32-msvc
Description: This is the **i686-pc-windows-msvc** binary for `@napi-rs/woff-build`
Latest version: 0.2.2

# `@napi-rs/woff-build-win32-ia32-msvc`

This is the **i686-pc-windows-msvc** binary for `@napi-rs/woff-build`
npm package: @napi-rs/woff-build-win32-x64-msvc
Description: This is the **x86_64-pc-windows-msvc** binary for `@napi-rs/woff-build`
Latest version: 0.2.2

# `@napi-rs/woff-build-win32-x64-msvc`

This is the **x86_64-pc-windows-msvc** binary for `@napi-rs/woff-build`
npm package: @napi-rs/xattr
Description: It provides support for manipulating extended attributes (xattrs) on modern Unix filesystems.
Latest version: 1.0.3

# `@napi-rs/xattr`

![https://github.com/Brooooooklyn/xattr/actions](https://github.com/Brooooooklyn/xattr/workflows/CI/badge.svg)

> It provides support for manipulating extended attributes (xattrs) on modern Unix filesystems.

# Usage

```ts
export function getAttribute(path: string, name: string): Promise<Buffer | null>
export function getAttributeSync(path: string, name: string): Buffer | null
export function setAttribute(path: string, name: string, value: Buffer | string): Promise<void>
export function setAttributeSync(path: string, name: string, value: Buffer | string): void
export function removeAttributeSync(path: string, name: string): void
export function removeAttribute(path: string, name: string): Promise<void>
export function listAttributes(path: string): Promise<Array<string>>
export function listAttributesSync(path: string): Array<string>
```
npm package: @napi-rs/xattr-linux-arm-gnueabihf
Description: It provides support for manipulating extended attributes (xattrs) on modern Unix filesystems.
Latest version: 1.0.3

# `@napi-rs/xattr-linux-arm-gnueabihf`

This is the **armv7-unknown-linux-gnueabihf** binary for `@napi-rs/xattr`
npm package: @napi_screenshot/napi_screenshot
Description: 在 Rust 项目中，build.rs 是一个特殊的 Rust 文件，用于在构建过程中自定义构建行为。当您运行 cargo build 或 cargo run 命令时，build.rs 文件会在编译前运行，并生成 Rust 代码、C 代码、Makefile 或其他构建文件。
Latest version: 0.0.11



## build.rs
在 Rust 项目中，build.rs 是一个特殊的 Rust 文件，用于在构建过程中自定义构建行为。当您运行 cargo build 或 cargo run 命令时，build.rs 文件会在编译前运行，并生成 Rust 代码、C 代码、Makefile 或其他构建文件。

build.rs 文件通常用于执行以下操作：

生成 Rust 代码。例如，您可以使用 build.rs 文件生成类似于 constants 模块的代码，该模块包含在编译时生成的常量或配置信息。

生成 C 代码。例如，您可以使用 build.rs 文件生成 C 代码，该代码包含在 Rust 代码中使用的外部 C 库的绑定。

生成 Makefile 或其他构建文件。例如，您可以使用 build.rs 文件生成 Makefile，该文件包含在编译时使用的自定义构建规则


## Example
```node
yarn build
node example.mjs
```

### CI.yml
如果将 check-latest 参数设置为 false，则 actions/setup-node@v3 action 将不会检查 Node.js 的最新可用版本，而是直接安装指定版本的 Node.js。

默认情况下，如果未指定或将 check-latest 设置为 true，则 actions/setup-node@v3 action 将检查满足 node-version 参数中指定的版本范围的最新可用版本的 Node.js。如果存在更新版本，则安装更新版本而非指定版本。

例如，如果 node-version 设置为 14.x，并且 check-latest 设置为 true，则 actions/setup-node@v3 action 将检查 14.x 范围内的最新可用版本的 Node.js，并安装它，如果它比当前安装的版本更新。如果 check-latest 设置为 false，则它将安装最新可用的满足 14.x 范围的版本，而不管它是否比当前安装的版本更新。

总之，将 check-latest 设置为 false 可以确保始终安装特定版本的 Node.js，而不管新版本是否可用。这在某些情况下是有用的。


### Publish
```shell
npm version patch
git push --follow-tags
```
npm package: @napi_screenshot/napi_screenshot-darwin-arm64
Description: This is the **aarch64-apple-darwin** binary for `@napi_screenshot/napi_screenshot`
Latest version: 0.0.11

# `@napi_screenshot/napi_screenshot-darwin-arm64`

This is the **aarch64-apple-darwin** binary for `@napi_screenshot/napi_screenshot`
npm package: @napi_screenshot/napi_screenshot-darwin-x64
Description: This is the **x86_64-apple-darwin** binary for `@napi_screenshot/napi_screenshot`
Latest version: 0.0.11

# `@napi_screenshot/napi_screenshot-darwin-x64`

This is the **x86_64-apple-darwin** binary for `@napi_screenshot/napi_screenshot`
npm package: @napi_screenshot/napi_screenshot-win32-x64-msvc
Description: This is the **x86_64-pc-windows-msvc** binary for `@napi_screenshot/napi_screenshot`
Latest version: 0.0.11

# `@napi_screenshot/napi_screenshot-win32-x64-msvc`

This is the **x86_64-pc-windows-msvc** binary for `@napi_screenshot/napi_screenshot`