docs: sync documentation with v1.1.0 protocol and CLI changes

This commit is contained in:
2026-06-30 20:43:00 +02:00
parent 185e6ec20a
commit 21ac1f7487
8 changed files with 409 additions and 145 deletions
+17 -15
View File
@@ -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
```