docs: add tiering to the documentation - fixes #8873
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
title: "Amazon Drive"
|
title: "Amazon Drive"
|
||||||
description: "Rclone docs for Amazon Drive"
|
description: "Rclone docs for Amazon Drive"
|
||||||
versionIntroduced: "v1.20"
|
versionIntroduced: "v1.20"
|
||||||
status: Deprecated
|
status: Removed
|
||||||
---
|
---
|
||||||
|
|
||||||
# {{< icon "fab fa-amazon" >}} Amazon Drive
|
# {{< icon "fab fa-amazon" >}} Amazon Drive
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
title: "Cache"
|
title: "Cache"
|
||||||
description: "Rclone docs for cache remote"
|
description: "Rclone docs for cache remote"
|
||||||
versionIntroduced: "v1.39"
|
versionIntroduced: "v1.39"
|
||||||
status: Deprecated
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# {{< icon "fa fa-archive" >}} Cache
|
# {{< icon "fa fa-archive" >}} Cache
|
||||||
@@ -10,6 +9,9 @@ status: Deprecated
|
|||||||
The `cache` remote wraps another existing remote and stores file structure
|
The `cache` remote wraps another existing remote and stores file structure
|
||||||
and its data for long running tasks like `rclone mount`.
|
and its data for long running tasks like `rclone mount`.
|
||||||
|
|
||||||
|
It is **deprecated** so not recommended for use with new installations
|
||||||
|
and may be removed at some point.
|
||||||
|
|
||||||
## Status
|
## Status
|
||||||
|
|
||||||
The cache backend code is working but it currently doesn't
|
The cache backend code is working but it currently doesn't
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
title: "Chunker"
|
title: "Chunker"
|
||||||
description: "Split-chunking overlay remote"
|
description: "Split-chunking overlay remote"
|
||||||
versionIntroduced: "v1.50"
|
versionIntroduced: "v1.50"
|
||||||
status: Beta
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# {{< icon "fa fa-cut" >}} Chunker
|
# {{< icon "fa fa-cut" >}} Chunker
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
title: "Compress"
|
title: "Compress"
|
||||||
description: "Compression Remote"
|
description: "Compression Remote"
|
||||||
versionIntroduced: "v1.54"
|
versionIntroduced: "v1.54"
|
||||||
status: Experimental
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# {{< icon "fas fa-compress" >}} Compress
|
# {{< icon "fas fa-compress" >}} Compress
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
title: "Hasher"
|
title: "Hasher"
|
||||||
description: "Better checksums for other remotes"
|
description: "Better checksums for other remotes"
|
||||||
versionIntroduced: "v1.57"
|
versionIntroduced: "v1.57"
|
||||||
status: Experimental
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# {{< icon "fa fa-check-double" >}} Hasher
|
# {{< icon "fa fa-check-double" >}} Hasher
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
title: "iCloud Drive"
|
title: "iCloud Drive"
|
||||||
description: "Rclone docs for iCloud Drive"
|
description: "Rclone docs for iCloud Drive"
|
||||||
versionIntroduced: "v1.69"
|
versionIntroduced: "v1.69"
|
||||||
status: Beta
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# {{< icon "fa fa-cloud" >}} iCloud Drive
|
# {{< icon "fa fa-cloud" >}} iCloud Drive
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
title: "Proton Drive"
|
title: "Proton Drive"
|
||||||
description: "Rclone docs for Proton Drive"
|
description: "Rclone docs for Proton Drive"
|
||||||
versionIntroduced: "v1.64.0"
|
versionIntroduced: "v1.64.0"
|
||||||
status: Beta
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# {{< icon "fa fa-folder" >}} Proton Drive
|
# {{< icon "fa fa-folder" >}} Proton Drive
|
||||||
|
|||||||
@@ -0,0 +1,58 @@
|
|||||||
|
---
|
||||||
|
title: "Backend Support Tiers"
|
||||||
|
description: "A complete list of supported backends and their stability tiers."
|
||||||
|
---
|
||||||
|
|
||||||
|
# Tiers
|
||||||
|
|
||||||
|
Rclone backends are divided into tiers to give users an idea of the stability of each backend.
|
||||||
|
|
||||||
|
| Tier | Label | Intended meaning |
|
||||||
|
|--------|---------------|------------------|
|
||||||
|
| {{< tier tier="Tier 1" >}} | Core | Production-grade, first-class |
|
||||||
|
| {{< tier tier="Tier 2" >}} | Stable | Well-supported, minor gaps |
|
||||||
|
| {{< tier tier="Tier 3" >}} | Supported | Works for many uses; known caveats |
|
||||||
|
| {{< tier tier="Tier 4" >}} | Experimental | Use with care; expect gaps/changes |
|
||||||
|
| {{< tier tier="Tier 5" >}} | Deprecated | No longer maintained or supported |
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
Here is a summary of all backends:
|
||||||
|
|
||||||
|
{{< tiers-table >}}
|
||||||
|
|
||||||
|
## Scoring
|
||||||
|
|
||||||
|
Here is how the backends are scored.
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
These are useful optional features a backend should have in rough
|
||||||
|
order of importance. Each one of these scores a point for the Features
|
||||||
|
column.
|
||||||
|
|
||||||
|
- F1: Hash(es)
|
||||||
|
- F2: Modtime
|
||||||
|
- F3: Stream upload
|
||||||
|
- F4: Copy/Move
|
||||||
|
- F5: DirMove
|
||||||
|
- F6: Metadata
|
||||||
|
- F7: MultipartUpload
|
||||||
|
|
||||||
|
|
||||||
|
### Tier
|
||||||
|
|
||||||
|
The tier is decided after determining these attributes. Some discretion is allowed in tiering as some of these attributes are more important than others.
|
||||||
|
|
||||||
|
| Attr | T1: Core | T2: Stable | T3: Supported | T4: Experimental | T5: Incubator |
|
||||||
|
|------|----------|------------|---------------|------------------|---------------|
|
||||||
|
| Maintainers | >=2 | >=1 | >=1 | >=0 | >=0 |
|
||||||
|
| API source | Official | Official | Either | Either | Either |
|
||||||
|
| Features (F1-F7) | >=5/7 | >=4/7 | >=3/7 | >=2/7 | N/A |
|
||||||
|
| Integration tests | All Green | All green | Nearly all green | Some Flaky | N/A |
|
||||||
|
| Error handling | Pacer | Pacer | Retries | Retries | N/A |
|
||||||
|
| Data integrity | Hashes, alt, modtime | Hashes or alt | Hash OR modtime | Best-effort | N/A |
|
||||||
|
| Perf baseline | Bench within 2x S3 | Bench doc | Anecdotal OK | Optional | N/A |
|
||||||
|
| Adoption | widely used | often used | some use | N/A | N/A |
|
||||||
|
| Docs completeness | Full | Full | Basic | Minimal | Minimal |
|
||||||
|
| Security | Principle-of-least-privilege | Reasonable scopes | Basic auth | Works | Works |
|
||||||
@@ -41,7 +41,12 @@
|
|||||||
{{ with .Params.status | lower }}
|
{{ with .Params.status | lower }}
|
||||||
{{ $statusCode := . }}
|
{{ $statusCode := . }}
|
||||||
{{ $statusMessage := index $statusMap $statusCode }}
|
{{ $statusMessage := index $statusMap $statusCode }}
|
||||||
<span class="badge badge-pill badge-danger float-right" style="margin-top: 30px; font-size: 100%" title="{{ $statusMessage }}">{{ $statusCode }}</span>
|
<span class="badge badge-pill badge-danger float-right" style="margin-top: 30px; font-size: 100%" title="{{ $statusMessage }}">{{ $statusCode | title }}</span>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ if .Page.File }}
|
||||||
|
{{ $backendName := .Page.File.TranslationBaseName }}
|
||||||
|
{{ partial "tier.html" (dict "name" $backendName "align" true) }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ block "main" . }}
|
{{ block "main" . }}
|
||||||
|
|||||||
@@ -51,6 +51,7 @@
|
|||||||
</a>
|
</a>
|
||||||
<div class="dropdown-menu pre-scrollable" aria-labelledby="navbarDropdown">
|
<div class="dropdown-menu pre-scrollable" aria-labelledby="navbarDropdown">
|
||||||
<a class="dropdown-item" href="/overview/"><i class="fas fa-map fa-fw"></i> Overview</a>
|
<a class="dropdown-item" href="/overview/"><i class="fas fa-map fa-fw"></i> Overview</a>
|
||||||
|
<a class="dropdown-item" href="/tiers/"><i class="fas fa-map fa-fw"></i> Support Tiers</a>
|
||||||
<div class="dropdown-divider"></div>
|
<div class="dropdown-divider"></div>
|
||||||
<a class="dropdown-item" href="/fichier/"><i class="fa fa-archive fa-fw"></i> 1Fichier</a>
|
<a class="dropdown-item" href="/fichier/"><i class="fa fa-archive fa-fw"></i> 1Fichier</a>
|
||||||
<a class="dropdown-item" href="/netstorage/"><i class="fas fa-database fa-fw"></i> Akamai NetStorage</a>
|
<a class="dropdown-item" href="/netstorage/"><i class="fas fa-database fa-fw"></i> Akamai NetStorage</a>
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
{{/* Context: Accepts .tier (string) OR .name (string) for lookup. Optional: .align (bool) */}}
|
||||||
|
|
||||||
|
{{ $tierColors := dict
|
||||||
|
"Tier 1" "success"
|
||||||
|
"Tier 2" "success"
|
||||||
|
"Tier 3" "warning"
|
||||||
|
"Tier 4" "danger"
|
||||||
|
"Tier 5" "danger"
|
||||||
|
}}
|
||||||
|
|
||||||
|
{{ $tierMessages := dict
|
||||||
|
"Tier 1" "Core: Production-grade, first-class"
|
||||||
|
"Tier 2" "Stable: Well-supported, minor gaps"
|
||||||
|
"Tier 3" "Supported: Works for many uses; known caveats"
|
||||||
|
"Tier 4" "Experimental: Use with care; expect gaps/changes"
|
||||||
|
"Tier 5" "Deprecated: No longer maintained or supported"
|
||||||
|
}}
|
||||||
|
|
||||||
|
{{/* Determine the Tier Name */}}
|
||||||
|
{{ $currentTier := "" }}
|
||||||
|
|
||||||
|
{{ if .tier }}
|
||||||
|
{{/* Direct Tier Usage */}}
|
||||||
|
{{ $currentTier = .tier }}
|
||||||
|
{{ else if .name }}
|
||||||
|
{{/* Backend Lookup Usage */}}
|
||||||
|
{{ $backendName := .name | lower }}
|
||||||
|
{{ $data := index site.Data.backends $backendName }}
|
||||||
|
{{ if $data }}
|
||||||
|
{{ $currentTier = $data.tier }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{/* Render Badge if a Tier was found */}}
|
||||||
|
{{ if $currentTier }}
|
||||||
|
{{ $color := index $tierColors $currentTier | default "secondary" }}
|
||||||
|
{{ $message := index $tierMessages $currentTier | default "" }}
|
||||||
|
|
||||||
|
<a href="/tiers/" class="badge badge-pill badge-{{ $color }} {{ if .align }}float-right{{ end }}" style="{{ if .align }}margin-top: 30px; {{ end }}font-size: 100%" title="{{ $message }}">
|
||||||
|
{{ $currentTier }}
|
||||||
|
</a>
|
||||||
|
{{ end }}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{{ partial "tier.html" (dict "tier" (.Get "tier") "name" (.Get "name") "align" (.Get "align")) }}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Backend</th>
|
||||||
|
<th>Tier</th>
|
||||||
|
<th>Maintainers</th>
|
||||||
|
<th>Features</th>
|
||||||
|
<th>Tests</th>
|
||||||
|
<th>Integrity</th>
|
||||||
|
<th>Perf</th>
|
||||||
|
<th>Adoption</th>
|
||||||
|
<th>Docs</th>
|
||||||
|
<th>Security</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{{ range $name, $data := site.Data.backends }}
|
||||||
|
<tr>
|
||||||
|
<td style="font-weight: bold;">
|
||||||
|
<a href="/{{ $name | urlize }}">{{ $data.name }}</a>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{{ partial "tier.html" (dict "name" $name "align" false) }}
|
||||||
|
</td>
|
||||||
|
<td>{{ $data.maintainers | default "-" }}</td>
|
||||||
|
<td>{{ $data.features_score | string | default "-" }}</td>
|
||||||
|
<td>
|
||||||
|
<span class="{{ if eq $data.integration_tests "Passing" }}text-success{{ else }}text-danger{{ end }}">
|
||||||
|
{{ if eq $data.integration_tests "Passing" }}✔{{ else }}✖{{ end }}
|
||||||
|
</span>
|
||||||
|
{{ $data.integration_tests | default "-" }}
|
||||||
|
</td>
|
||||||
|
<td>{{ $data.data_integrity | default "-" }}</td>
|
||||||
|
<td>{{ $data.performance | default "-" }}</td>
|
||||||
|
<td>{{ $data.adoption | default "-" }}</td>
|
||||||
|
<td>{{ $data.docs | default "-" }}</td>
|
||||||
|
<td>{{ $data.security | default "-" }}</td>
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
Reference in New Issue
Block a user