docs: sync documentation with v1.1.0 protocol and CLI changes
This commit is contained in:
+17
-15
@@ -11,10 +11,10 @@ goget supports 9 network protocols through a unified abstraction layer. Each pro
|
||||
| `sftp://` | SFTP | ✓ | ✓ | — | ✓ | `golang.org/x/crypto/ssh` |
|
||||
| `file://` | Local file | — | — | — | ✓ | Go stdlib `os` |
|
||||
| `data:` | Data URI | — | — | — | — | Go stdlib |
|
||||
| `gopher://` | Gopher | — | — | — | — | Custom implementation |
|
||||
| `gopher://` | Gopher | ✓ | — | — | — | Custom implementation |
|
||||
| `webdav://` `webdavs://` | WebDAV | ✓ | — | ✓ | ✓ | HTTP (via delegation) |
|
||||
|
||||
| `gemini://` | Gemini | — | — | — | — | Custom implementation |
|
||||
| `gemini://` | Gemini | ✓ | — | — | — | Custom implementation |
|
||||
|
||||
## HTTP/HTTPS (`http://`, `https://`)
|
||||
|
||||
@@ -182,10 +182,14 @@ Implements the Gopher protocol as specified in RFC 1436.
|
||||
- **Type parsing** — Respects Gopher type codes (0 = text, 1 = directory, 9 = binary)
|
||||
- **Directory listing** — For recursive operations
|
||||
- **Text and binary downloads**
|
||||
- **Resume** — `.goget.meta` sidecar on interrupt for `typeHTML`,
|
||||
`typeTextFile`, and `typeInformation` responses; `--resume` continues
|
||||
interrupted Gopher transfers (skips already-written output bytes
|
||||
— post-transform length because Gopher line metadata is stripped
|
||||
before writing)
|
||||
|
||||
### Limitations
|
||||
|
||||
- No resume
|
||||
- No parallel downloads
|
||||
- No encryption (Gopher has no TLS)
|
||||
- No upload
|
||||
@@ -196,6 +200,9 @@ Implements the Gopher protocol as specified in RFC 1436.
|
||||
# Download a file from a Gopher server
|
||||
goget --url gopher://gopher.example.com/9/file.zip
|
||||
|
||||
# Resume an interrupted Gopher text download
|
||||
goget --url gopher://gopher.example.com/0/article --output article.txt --resume
|
||||
|
||||
# Browse a Gopher directory
|
||||
goget --url gopher://gopher.example.com/1/
|
||||
```
|
||||
@@ -235,21 +242,16 @@ goget --url gemini://gemini.example.com/ --pinned-cert a1b2c3d4e5f6...
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
URL[URL input]:::accent6
|
||||
Parse["Parse URL"]:::accent7
|
||||
Normalize["Normalize scheme\n(https→http, ftps→ftp)"]:::accent7
|
||||
Registry["Look up in protocol registry"]:::accent1
|
||||
Found{"Protocol found?"}:::accent4
|
||||
Error["Unsupported protocol error"]:::accent4
|
||||
Handle["Delegate to protocol handler"]:::accent1
|
||||
URL[URL input]
|
||||
Parse["Parse URL"]
|
||||
Normalize["Normalize scheme\n(https→http, ftps→ftp)"]
|
||||
Registry["Look up in protocol registry"]
|
||||
Found{"Protocol found?"}
|
||||
Error["Unsupported protocol error"]
|
||||
Handle["Delegate to protocol handler"]
|
||||
|
||||
URL --> Parse --> Normalize --> Registry
|
||||
Registry --> Found
|
||||
Found -->|Yes| Handle
|
||||
Found -->|No| Error
|
||||
|
||||
classDef accent1 fill:#22C55E,stroke:#16A34A,color:#fff
|
||||
classDef accent4 fill:#EF4444,stroke:#DC2626,color:#fff
|
||||
classDef accent6 fill:#6366F1,stroke:#4F46E5,color:#fff
|
||||
classDef accent7 fill:#64748B,stroke:#475569,color:#fff
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user