Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hypercore-protocol/hyperspace
Hypercores, batteries included.
https://github.com/hypercore-protocol/hyperspace
Last synced: 12 days ago
JSON representation
Hypercores, batteries included.
- Host: GitHub
- URL: https://github.com/hypercore-protocol/hyperspace
- Owner: hypercore-protocol
- License: mit
- Created: 2020-06-20T14:47:04.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-08-17T02:03:04.000Z (about 1 year ago)
- Last Synced: 2024-10-12T19:08:04.114Z (about 1 month ago)
- Language: JavaScript
- Size: 185 KB
- Stars: 182
- Watchers: 16
- Forks: 28
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# NOTE
The Hyperspace daemon is out of date, tracking the previous major version of the Hypercore stack.
Check out the individual repos instead, like [Hypercore](https://github.com/hypercore-protocol/hypercore), [Hyperbee](https://github.com/hypercore-protocol/hyperbee), [Hyperbeam](https://github.com/mafintosh/hyperbeam), [Hyperswarm](https://github.com/hyperswarm), which don't require a deamon as well and are much more powerful for building P2P apps.
If you have questions feel free to reach out on our Discord, https://chat.hypercore-protocol.org
Click to see the Hyperspace README still
# 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