Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/anderscan/p2p-socket
Connect two machines across the web together via hyperdht.
https://github.com/anderscan/p2p-socket
holepunch p2p
Last synced: 2 months ago
JSON representation
Connect two machines across the web together via hyperdht.
- Host: GitHub
- URL: https://github.com/anderscan/p2p-socket
- Owner: AndersCan
- Created: 2022-09-01T13:07:44.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-07-03T21:38:35.000Z (over 1 year ago)
- Last Synced: 2024-10-03T11:11:49.113Z (3 months ago)
- Topics: holepunch, p2p
- Language: TypeScript
- Homepage:
- Size: 965 KB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# p2p-socket
![Banner image of three pears](https://raw.githubusercontent.com/AndersCan/p2p-socket/main/banner.jpg)
---
Connect two machines across the web together via the [hyperdht](https://github.com/holepunchto/hyperswarm-dht).
---
## Highlights
- No sentral server
- Connections are direct between machines (Peer to Peer)
- Encrypted end-to-end.Run `npx p2p-socket --help` for usage instuctions. Currently only supports TCP, but UDP can/will be added later.
## Quick start
A p2p-socket is just an easy way to connect to another machine over the internet. Here is a step-by-step guide on how Alice can share `localhost:3000` with Bob.
### Sharing
For Alice to share `localhost:3000` with Bob, she would run:
```bash
# Alice
npx p2p-socket share --port 3000
```This will print the connection information that Alice will have to share with Bob. Note that nobody on the network will find Alice unless she shares her public key with them.
### Connect
To connect, Bob will run:
```bash
# Bob
npx p2p-socket connect --port 3000 --remote-key
```Bob can now access `localhost:3000` and reach Alice.
## Persistant remote-key
To avoid having to reshare your connection information each time you restart your server, run `npx p2p-socket create-id`. This will create an `identity.json` file locally. This will enable a consistent `remote-key`.
> Note: The key will still change if you change `host` and `port`
## Acknowledgements
Inspired by [hyperswarm-http-server](https://github.com/mafintosh/hyperswarm-http-server) and made possible by [🕳🥊Holepunch](https://holepunch.to/) tech.