peerline 0.1.0-beta.0 → 0.1.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -11
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ Peerline has two roles:
|
|
|
21
21
|
- Receiver: runs `peerline recv`, keeps listening for incoming transfers until you quit or the idle timeout expires, and prints a `name`, `code`, and direct endpoint.
|
|
22
22
|
- Sender: runs `peerline send`, points at the receiver by name/code or IP/code, and provides the files or folders to send.
|
|
23
23
|
|
|
24
|
-
For named transfers, the receiver publishes a short-lived descriptor keyed by the shared name and code. The sender derives the same lookup key, discovers candidate routes, and tries them in order. Peerline prefers direct LAN or public TCP endpoints first, then libp2p routes such as DCUtR and WebRTC
|
|
24
|
+
For named transfers, the receiver publishes a short-lived descriptor keyed by the shared name and code. The sender derives the same lookup key, discovers candidate routes, and tries them in order. Peerline prefers direct LAN or public TCP endpoints first, then libp2p routes such as DCUtR and WebRTC direct. When direct and hole-punched routes are unavailable, Peerline falls back to libp2p relay transport by default while keeping file contents protected by Peerline's end-to-end encryption.
|
|
25
25
|
|
|
26
26
|
Peerline also probes HTTP rendezvous first, with a default endpoint at `https://peerline.pwp.sh`, then falls back to DHT and mDNS. Official builds use a private mTLS-protected rendezvous endpoint; set `PEERLINE_RENDEZVOUS_CLIENT_IDENTITY_PATH` or `PEERLINE_RENDEZVOUS_CLIENT_IDENTITY_PEM` to a PEM bundle with the client certificate and private key, or set `PEERLINE_RENDEZVOUS_URLS` / `PEERLINE_RENDEZVOUS_URL` to point at another compatible rendezvous service. Use `PEERLINE_RENDEZVOUS_TOKEN` only when the rendezvous service expects a shared secret.
|
|
27
27
|
|
|
@@ -74,7 +74,7 @@ The receiver prints values like:
|
|
|
74
74
|
```text
|
|
75
75
|
peerline recv
|
|
76
76
|
name: frost-827
|
|
77
|
-
code: fig-mint-
|
|
77
|
+
code: fig-mint-rose-123456
|
|
78
78
|
direct: 0.0.0.0:43117
|
|
79
79
|
waiting for transfers over direct TCP or libp2p...
|
|
80
80
|
idle timeout: 10 min (change with --idle-timeout-minutes)
|
|
@@ -83,8 +83,8 @@ idle timeout: 10 min (change with --idle-timeout-minutes)
|
|
|
83
83
|
Send a file, multiple files, or a folder by name and code:
|
|
84
84
|
|
|
85
85
|
```sh
|
|
86
|
-
peerline send frost-827 fig-mint-
|
|
87
|
-
peerline send frost-827 fig-mint-
|
|
86
|
+
peerline send frost-827 fig-mint-rose-123456 ./file.txt
|
|
87
|
+
peerline send frost-827 fig-mint-rose-123456 ./file.txt ./notes.md ./photos
|
|
88
88
|
```
|
|
89
89
|
|
|
90
90
|
Receive with a saved name:
|
|
@@ -97,14 +97,14 @@ peerline recv
|
|
|
97
97
|
After a name is saved, you can receive with only a fresh code:
|
|
98
98
|
|
|
99
99
|
```sh
|
|
100
|
-
peerline recv fig-mint-
|
|
100
|
+
peerline recv fig-mint-rose-123456
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
Use a direct IP address when discovery is not needed:
|
|
104
104
|
|
|
105
105
|
```sh
|
|
106
|
-
peerline send 192.168.1.23:43117 ./file.txt --code=fig-mint-
|
|
107
|
-
peerline send 192.168.1.23 ./folder --code=fig-mint-
|
|
106
|
+
peerline send 192.168.1.23:43117 ./file.txt --code=fig-mint-rose-123456
|
|
107
|
+
peerline send 192.168.1.23 ./folder --code=fig-mint-rose-123456
|
|
108
108
|
```
|
|
109
109
|
|
|
110
110
|
When the port is omitted, Peerline probes the default direct window `43117-43121`.
|
|
@@ -117,7 +117,7 @@ Receiver options:
|
|
|
117
117
|
peerline recv [NAME_OR_CODE] [CODE] --port 43117
|
|
118
118
|
peerline recv [NAME_OR_CODE] [CODE] --overwrite
|
|
119
119
|
peerline recv [NAME_OR_CODE] [CODE] --no-tui
|
|
120
|
-
peerline recv [NAME_OR_CODE] [CODE] --
|
|
120
|
+
peerline recv [NAME_OR_CODE] [CODE] --no-relay-fallback
|
|
121
121
|
peerline recv [NAME_OR_CODE] [CODE] --idle-timeout-minutes 30
|
|
122
122
|
```
|
|
123
123
|
|
|
@@ -131,17 +131,30 @@ peerline send <name> <code> <path...> --compression auto
|
|
|
131
131
|
peerline send <name> <code> <path...> --compression none
|
|
132
132
|
peerline send <name> <code> <path...> --compression zstd
|
|
133
133
|
peerline send <name> <code> <path...> --compression lzma
|
|
134
|
-
peerline send <name> <code> <path...> --
|
|
134
|
+
peerline send <name> <code> <path...> --no-relay-fallback
|
|
135
135
|
peerline send --name <name> --code <code> <path...>
|
|
136
136
|
```
|
|
137
137
|
|
|
138
|
-
Relay fallback
|
|
138
|
+
Relay fallback is enabled by default. Direct and hole-punched routes are attempted before relay fallback; pass `--no-relay-fallback` on both sides when you want to require a direct or hole-punched path.
|
|
139
139
|
In the send TUI, a failed attempt stays on screen and offers `r` to retry the same send or `q`/Esc to quit.
|
|
140
140
|
|
|
141
|
+
Network environment variables:
|
|
142
|
+
|
|
143
|
+
```sh
|
|
144
|
+
PEERLINE_RELAY_PEERS=/ip4/203.0.113.10/tcp/4001/p2p/...
|
|
145
|
+
PEERLINE_DISABLE_RELAY_FALLBACK=1
|
|
146
|
+
PEERLINE_DISABLE_UPNP=1
|
|
147
|
+
PEERLINE_BOOTSTRAP=/dnsaddr/bootstrap.libp2p.io/p2p/...
|
|
148
|
+
PEERLINE_WEBRTC_ICE_SERVERS='[{"urls":["turn:turn.example.net:3478?transport=udp"],"username":"user","credential":"pass"}]'
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
`PEERLINE_RELAY_PEERS` should contain comma-separated libp2p relay-capable peer multiaddrs. If it is not set, Peerline tries the bootstrap peers as relay candidates. UPnP is enabled by default for home-router TCP and libp2p external address discovery; set `PEERLINE_DISABLE_UPNP=1` to turn it off.
|
|
152
|
+
WebRTC direct transport ships with default Open Relay Project TURN candidates for `staticauth.openrelay.metered.ca` on ports `80` and `443`, including UDP, TCP, and TLS-style `turns` URLs. Peerline generates short-lived static-auth credentials for those defaults. Set `PEERLINE_WEBRTC_ICE_SERVERS` to a JSON array of WebRTC ICE server objects to replace the defaults; set it to an empty string to disable configured ICE servers entirely.
|
|
153
|
+
|
|
141
154
|
## Current Status
|
|
142
155
|
|
|
143
156
|
- Direct IP send and receive works.
|
|
144
|
-
- Named discovery now uses HTTP rendezvous first, then Kademlia provider records, mDNS, DCUtR, relay fallback, and libp2p-webrtc
|
|
157
|
+
- Named discovery now uses HTTP rendezvous first, then Kademlia provider records, mDNS, UPnP-assisted direct endpoints, DCUtR, relay fallback, and libp2p-webrtc direct.
|
|
145
158
|
- Files, multiple files, and folders are archived with safe relative paths, BLAKE3 integrity checks, and streaming zstd/lzma compression support.
|
|
146
159
|
- Receivers stay open across multiple incoming transfers, with a configurable idle auto-exit.
|
|
147
160
|
- Conflicts default to non-overwrite behavior, with TUI-driven handling in the receiver flow.
|