# hyperspace

> Hypercores, batteries included.

Latest version **3.19.0** (published 2021-03-18) · MIT license · 0 weekly downloads

## Install

```sh
npm install hyperspace
pnpm add hyperspace
yarn add hyperspace
bun add hyperspace
```

Provides the commands `hyperspace`, `hyperspace-simulator`.

## Health

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

Positive: no vulnerabilities.

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

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.19.0 |
| Published | 2021-03-18 |
| First published | 2013-05-25 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 15 |
| Unpacked size | 74.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 191 |
| Author | Andrew Osheroff |
| Maintainers | mafintosh, andrewosh, pfrazee |
| Keywords | hypercores, corestore, rpc |

## Links

- npm: https://www.npmjs.com/package/hyperspace
- Repository: https://github.com/hyperspace-org/hyperspace
- Homepage: https://github.com/hyperspace-org/hyperspace#readme
- Issues: https://github.com/hyperspace-org/hyperspace/issues
- npm.io page: https://npm.io/package/hyperspace

## Dependencies (15)

- [minimist](https://npm.io/package/minimist.md) ^1.2.5
- [corestore](https://npm.io/package/corestore.md) ^5.7.3
- [hypercore](https://npm.io/package/hypercore.md) ^9.5.4
- [hypertrie](https://npm.io/package/hypertrie.md) ^5.1.1
- [hyperswarm](https://npm.io/package/hyperswarm.md) ^2.15.1
- [@hyperspace/rpc](https://npm.io/package/@hyperspace/rpc.md) ^1.8.0
- [hypercore-cache](https://npm.io/package/hypercore-cache.md) ^1.0.2
- [@hyperspace/client](https://npm.io/package/@hyperspace/client.md) ^1.14.0
- [hypercore-protocol](https://npm.io/package/hypercore-protocol.md) ^8.0.7
- [@corestore/networker](https://npm.io/package/@corestore/networker.md) ^1.0.3
- [nanoresource-promise](https://npm.io/package/nanoresource-promise.md) ^1.2.2
- [random-access-memory](https://npm.io/package/random-access-memory.md) ^3.1.1
- [inspect-custom-symbol](https://npm.io/package/inspect-custom-symbol.md) ^1.1.1
- [hypercore-default-storage](https://npm.io/package/hypercore-default-storage.md) ^1.0.0
- [@hyperspace/migration-tool](https://npm.io/package/@hyperspace/migration-tool.md) ^1.1.2

## Alternatives

- [jsforce](https://npm.io/package/jsforce.md) — 851.2K weekly downloads
- [react-native-qrcode-svg](https://npm.io/package/react-native-qrcode-svg.md) — 693.5K weekly downloads
- [@salesforce/plugin-data](https://npm.io/package/@salesforce/plugin-data.md) — 394.9K weekly downloads
- [@backstage/plugin-search-common](https://npm.io/package/@backstage/plugin-search-common.md) — 308.5K weekly downloads
- [@chain-registry/types](https://npm.io/package/@chain-registry/types.md) — 38.4K weekly downloads

## Recent versions

- 3.19.0 (latest) — 2021-03-18
- 3.18.2 — 2021-03-17
- 3.18.1 — 2020-12-22
- 3.18.0 — 2020-12-22
- 3.17.0 — 2020-12-12
- 3.16.0 — 2020-12-09
- 3.15.0 — 2020-11-25
- 3.14.0 — 2020-11-24
- 3.13.0 — 2020-11-13
- 3.12.1 — 2020-11-05
- 3.12.0 — 2020-11-03
- 3.11.0 — 2020-10-26
- 3.10.1 — 2020-10-20
- 3.10.0 — 2020-09-23
- 3.9.1 — 2020-09-17
- … 61 more at https://npm.io/package/hyperspace/versions

## README

# hyperspace
[![Build Status](https://travis-ci.com/andrewosh/hyperspace.svg?token=WgJmQm3Kc6qzq1pzYrkx&branch=master)](https://travis-ci.com/andrewosh/hyperspace)

> Hypercores, batteries included.

Hyperspace is a lightweight server that provides remote access to Hypercores and a Hyperswarm instance. It exposes a simple [RPC interface](https://github.com/hyperspace-org/rpc) that can be accessed with the [Hyperspace client for Node.js](https://github.com/hyperspace-org/client).

The RPC API's designed to be minimal, maintaining parity with Hypercore and the [`@corestore/networker`](https://github.com/andrewosh/corestore-networker) but with few extras.

Features include:
* A `RemoteCorestore` interface for creating namespaced [`Corestore`](https://github.com/andrewosh/corestore) instances. 
* A `RemoteNetworker` interface for managing [Hyperswarm DHT](https://github.com/hyperswarm/hyperswarm) connections. Supports stream-level extensions. 
* A `RemoteHypercore` interface that feels exactly like normal ol' [`Hypercore`](https://github.com/hypercore-protocol/hypercore), with [few exceptions](TODO). Extensions included.

#### Already using the Hyperdrive daemon?
With Hyperspace, most of the [Hyperdrive daemon's](https://github.com/hypercore-protocol/hyperdrive-daemon) functionality has been moved into "userland" -- instead of providing remote access to Hyperdrives, the regular [`hyperdrive`](https://github.com/hypercore-protocol/hyperdrive) module can be used with remote Hypercores.

If you're currently using the Hyperdrive daemon with FUSE and/or the daemon CLI, take a look at the upgrade instructions in [`@hyperspace/hyperdrive`](https://github.com/hyperspace-org/hyperdrive-service), which is our new Hyperdrive companion service for handling FUSE/CLI alongside Hyperspace.

__Note: The first time you run Hyperspace, it will detect your old Hyperdrive daemon installation and do an automatic migration. You can postpone the migration by starting the server with the `--no-migrate` flag (`hyperspace --no-migrate`).__

### Installation
```
npm i hyperspace -g
```

### Getting Started
When installed globally, you can use the `hyperspace` CLI tool to start the server:
```
❯ hyperspace --no-migrate  // Starts the server without performing the Hyperdrive daemon migration
```

The `hyperspace` command supports the following flags:
```
--bootstrap   // Hyperswarm bootstrapping options (see Hyperswarm docs).
--host        // Host to bind to.
--port        // Port to bind to (if specified, will use TCP).
--memory-only // Run in memory-only mode.
--no-announce // Never announce topics on the DHT.
--no-migrate  // Do not attempt to migrate the Hyperdrive daemon's storage to Hyperspace.
--repl        // Start the server with a debugging REPL.
```

By default, Hyperspace binds to a UNIX domain socket (or named pipe on Windows) at `~/.hyperspace/hyperspace.sock`.

Once the server's started, you can use the client to create and manage remote Hypercores. If you'd like the use the Hyperdrive CLI, check out the [`@hyperspace/hyperdrive` docs](https://github.com/hyperspace-org/hyperdrive-service).

### API
To work with Hyperspace, you'll probably want to start with the [Node.js client library](https://github.com/hyperspace-org/client). The README over there provides detailed API info.

### Simulator

Hyperspace includes a "simulator" that can be used to create one-off Hyperspace instances, which can be used for testing.

```js
const simulator = require('hyperspace/simulator')
// client is a HyperspaceClient, server is a HyperspaceServer
const { client, server, cleanup } = await simulator()
```

### License
MIT

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