# binary-downloader

> Binary downloader - node-pre-gyp without node-gyp step

Latest version **0.2.0** (published 2020-08-04) · MIT license · 0 weekly downloads

## Install

```sh
npm install binary-downloader
pnpm add binary-downloader
yarn add binary-downloader
bun add binary-downloader
```

Provides the command `binary-downloader`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.2.0 |
| Published | 2020-08-04 |
| First published | 2020-04-28 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 5 |
| Unpacked size | 18.8 KB |
| Known vulnerabilities | 0 (+13 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 2 |
| Author | vdeturckheim |
| Maintainers | vdeturckheim |

## Links

- npm: https://www.npmjs.com/package/binary-downloader
- Repository: https://github.com/vdeturckheim/binary-downloader
- Homepage: https://github.com/vdeturckheim/binary-downloader#readme
- Issues: https://github.com/vdeturckheim/binary-downloader/issues
- npm.io page: https://npm.io/package/binary-downloader

## Dependencies (5)

- [tar](https://npm.io/package/tar.md) ^4.4.13
- [semver](https://npm.io/package/semver.md) ^6.3.0
- [detect-libc](https://npm.io/package/detect-libc.md) ^1.0.3
- [http-proxy-agent](https://npm.io/package/http-proxy-agent.md) ^4.0.1
- [https-proxy-agent](https://npm.io/package/https-proxy-agent.md) ^5.0.0

## Recent versions

- 0.2.0 (latest) — 2020-08-04
- 0.1.1 — 2020-04-28
- 0.1.0 — 2020-04-28

## README

# binary-downloader
This module downloads remote binaries according to requirements for a given
version of Node.js.

It also simplifies requiring these modules.
It aims at Node.js v4 compatibility (and that's why it uses older versions of
the `tar` and `semver` modules).

The goal of this module is to provide a simple and lightweight way of handling
pre-built native modules when no local build is possible.

## Installation

```bash
npm install -S binary-downloader
```

## Usage
This module uses the same `binary` field in `package.json` as `node-pre-gyp`.
However, it only supports the following tags:
* `platform`
* `libc`
* `arch`
* `node_napi_label`

For other tags, feel free to open an issue or a PR!

Also, to get the `require` string to the downloaded binary, you will have to do
the following:
```js
const PackageJSON = require('./package.json');
const binding_path = Binary.getPath(PackageJSON.binary);
const Binding = require(binding_path);
``` 
(You are, of courses, free to get the `binary` part of the `package.json` by any
other way that works for you!);

## Proxy support

This module supports https proxy. If an URL is present in the `https_proxy`, the 
`HTTPS_PROXY` or the `npm_config_proxy` environment variable, the download
of the binary will be done through this URL using the `https-proxy-agent`
module.
Alternatively, using `http_proxy` or `HTTPS_PROXY` environment variables will
use the `http-proxy-agent` module.

## Differences with node-pre-gyp

The great [node-pre-gyp](TODO) module can handle the lifecycle of a native
module. It can help publishing it. It allows falling back on building the module
locally if download failed and many more.

The current module just tries its best to download a native module and make it
available to use. Nothing more, nothing less. It is therefore way lighter and
probably constitutes a good alternative to `node-pre-gyp` if you want to ship
a commercial (or at least) pre-vuilt version of a module. At least, it serves
my needs here.

---
_Source: https://npm.io/package/binary-downloader · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
