Skip to content
This repository was archived by the owner on Jun 28, 2026. It is now read-only.

Latest commit

History

1,384 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Arius: a Lightweight Tiered Archival Solution for Azure Blob Storage

CIcodecovCodeQL

DockerClickOnce

Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier.

The name derives from the Greek for 'immortal'.

Important

As of June 27, 2026, this repository is read-only and no longer maintained.

Arius7 is the successor and receives all new development: Arius7.

Why?

  1. Supporting 3-2-1 Backup Strategy: Arius offers a secure and cost-effective offsite backup solution, complementing offline disk backups. The use of Azure Blob Archive tier allows for low-cost archiving, approximately 1 EUR per TB per month.

  2. Single Pane of Glass: Arius ensures seamless visibility to offline backups without requiring a separate application. By creating small "pointers" locally, they remain present in the local filesystem and easily discoverable in Windows Explorer.

  3. Encryption: For those with privacy concerns, Arius uses AES256/openssl-compatible encryption, providing robust client-side encryption.

  4. Deduplication: Arius does not store duplicate files or file parts. It offers file-level deduplication by default and allows optional variable block size deduplication within files.

How

Arius is a command-line tool (CLI) that can be run manually or scheduled. It can also be run as a Docker container.

Arius Explorer is a Windows application that offers a graphical user interface into an Arius repository.

Arius Explorer

Install it via ClickOnce by clicking on the shield at the top of the page.

The status icon is a combination of the state in the local file system (left half moon) and the state in the repository (right half moon). For example:

IconLocal file systenAzure Repository
Not presentPointer and Binary
Only the PointerPointer and Binary
Pointer and BinaryPointer and Binary

Arius CLI

Archive to Azure

CLI:

arius archive <path>
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--remove-local]
[--tier=<hot/cool/archive>]
[--dedup]
[--fasthash]

CLI in Docker:

docker run
-v <absolute_path_to_archive>:/archive
[-v <absolute_path_to_logs>:/logs]
woutervanranst/arius
archive
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--remove-local]
[--tier=<hot/cool/archive>]
[--dedup]
[--fasthash]

Restore from Azure

CLI:

arius restore <path>
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--synchronize]
[--download]
[--keep-pointers]

CLI in Docker:

docker run
-v <absolute_path_to_archive>:/archive
[-v <absolute_path_to_logs>:/logs]
woutervanranst/arius
restore
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--synchronize]
[--download]
[--keep-pointers]

Arguments

ArgumentDescriptionNotes
pathThe path on the local file systemFor archive:
The root directory to archive

For restore:
  • If path is a directory: restore all pointer files in the (sub)directories.
  • If path is a file: restore this file.
logpathPath to the folder to store the logsOPTIONAL. NOTE: Only for Docker.
‑‑accountname, ‑nStorage Account Name
‑‑accountkey, ‑kStorage Account KeyCan be set through:
  • Argument
  • Environment variable ARIUS_ACCOUNT_KEY
  • Docker environment variable ARIUS_ACCOUNT_KEY
‑‑passphrase, ‑pPassphrase with which the blobs are encrypted
‑‑container, ‑cBlob container to useOPTIONAL. Default: 'arius'.
‑‑remove-localRemove local file after a successful uploadarchive-only
OPTIONAL. Default: Local files are not deleted after archiving.
‑‑tierBlob storage tier (hot/cool/archive)archive-only
OPTIONAL. Default: 'archive'.
‑‑dedupDeduplicate on block levelarchive-only
OPTIONAL. Default: deduplicate on file level.
‑‑fasthashWhen a pointer file is present, use that hash instead of re-hashing the full file againarchive-only
OPTIONAL. Default: false.
NOTE: Do NOT use this if the contents of the files are modified. Arius will not pick up the changes.
‑‑synchronizeBring the structure of the local file system (pointer files) in line with the latest state of the remote repositoryrestore-only
OPTIONAL. Default: do not synchronize.
This command only touches the pointers (ie. .pointer.arius files). Other files are left untouched:
  • Pointers that exist in the archive but not locally are created.
  • Pointers that exist locally but not in the archive are deleted
‑‑downloadDownload and restore the actual file (contents)restore-only
OPTIONAL. Default: do not download.
NOTE: If the file is in the archive blob tier, hydration to an online tier is started. Run the restore command again after ~15 hours to download the file.
‑‑keep-pointersKeep pointer files after downloading content filesrestore-only
OPTIONAL. Default: keep the pointers.

Restoring manually

For detailed instructions on restoring files manually, without using any of the Arius tools, please consult the Restore Manually section.

Advanced

Deduplication

Arius employs deduplication to optimize storage efficiency. For detailed explanations, diagrams, and benchmarks on deduplication, refer to the Deduplication section in the documentation.

Technical Documentation

Dependencies

Arius.Core Architecture

Arius.Core Domain Model

Attributions

Arius Icon by Freepik.

Many thanks to ReSharper and PostSharp for their open source generosity.

About

Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier.

Topics

Resources

Stars

14 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - woutervanranst/Arius: Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier. · GitHub
Skip to content
This repository was archived by the owner on Jun 28, 2026. It is now read-only.

Latest commit

History

1,384 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Arius: a Lightweight Tiered Archival Solution for Azure Blob Storage

CIcodecovCodeQL

DockerClickOnce

Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier.

The name derives from the Greek for 'immortal'.

Important

As of June 27, 2026, this repository is read-only and no longer maintained.

Arius7 is the successor and receives all new development: Arius7.

Why?

  1. Supporting 3-2-1 Backup Strategy: Arius offers a secure and cost-effective offsite backup solution, complementing offline disk backups. The use of Azure Blob Archive tier allows for low-cost archiving, approximately 1 EUR per TB per month.

  2. Single Pane of Glass: Arius ensures seamless visibility to offline backups without requiring a separate application. By creating small "pointers" locally, they remain present in the local filesystem and easily discoverable in Windows Explorer.

  3. Encryption: For those with privacy concerns, Arius uses AES256/openssl-compatible encryption, providing robust client-side encryption.

  4. Deduplication: Arius does not store duplicate files or file parts. It offers file-level deduplication by default and allows optional variable block size deduplication within files.

How

Arius is a command-line tool (CLI) that can be run manually or scheduled. It can also be run as a Docker container.

Arius Explorer is a Windows application that offers a graphical user interface into an Arius repository.

Arius Explorer

Install it via ClickOnce by clicking on the shield at the top of the page.

The status icon is a combination of the state in the local file system (left half moon) and the state in the repository (right half moon). For example:

IconLocal file systenAzure Repository
Not presentPointer and Binary
Only the PointerPointer and Binary
Pointer and BinaryPointer and Binary

Arius CLI

Archive to Azure

CLI:

arius archive <path>
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--remove-local]
[--tier=<hot/cool/archive>]
[--dedup]
[--fasthash]

CLI in Docker:

docker run
-v <absolute_path_to_archive>:/archive
[-v <absolute_path_to_logs>:/logs]
woutervanranst/arius
archive
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--remove-local]
[--tier=<hot/cool/archive>]
[--dedup]
[--fasthash]

Restore from Azure

CLI:

arius restore <path>
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--synchronize]
[--download]
[--keep-pointers]

CLI in Docker:

docker run
-v <absolute_path_to_archive>:/archive
[-v <absolute_path_to_logs>:/logs]
woutervanranst/arius
restore
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--synchronize]
[--download]
[--keep-pointers]

Arguments

ArgumentDescriptionNotes
pathThe path on the local file systemFor archive:
The root directory to archive

For restore:
  • If path is a directory: restore all pointer files in the (sub)directories.
  • If path is a file: restore this file.
logpathPath to the folder to store the logsOPTIONAL. NOTE: Only for Docker.
‑‑accountname, ‑nStorage Account Name
‑‑accountkey, ‑kStorage Account KeyCan be set through:
  • Argument
  • Environment variable ARIUS_ACCOUNT_KEY
  • Docker environment variable ARIUS_ACCOUNT_KEY
‑‑passphrase, ‑pPassphrase with which the blobs are encrypted
‑‑container, ‑cBlob container to useOPTIONAL. Default: 'arius'.
‑‑remove-localRemove local file after a successful uploadarchive-only
OPTIONAL. Default: Local files are not deleted after archiving.
‑‑tierBlob storage tier (hot/cool/archive)archive-only
OPTIONAL. Default: 'archive'.
‑‑dedupDeduplicate on block levelarchive-only
OPTIONAL. Default: deduplicate on file level.
‑‑fasthashWhen a pointer file is present, use that hash instead of re-hashing the full file againarchive-only
OPTIONAL. Default: false.
NOTE: Do NOT use this if the contents of the files are modified. Arius will not pick up the changes.
‑‑synchronizeBring the structure of the local file system (pointer files) in line with the latest state of the remote repositoryrestore-only
OPTIONAL. Default: do not synchronize.
This command only touches the pointers (ie. .pointer.arius files). Other files are left untouched:
  • Pointers that exist in the archive but not locally are created.
  • Pointers that exist locally but not in the archive are deleted
‑‑downloadDownload and restore the actual file (contents)restore-only
OPTIONAL. Default: do not download.
NOTE: If the file is in the archive blob tier, hydration to an online tier is started. Run the restore command again after ~15 hours to download the file.
‑‑keep-pointersKeep pointer files after downloading content filesrestore-only
OPTIONAL. Default: keep the pointers.

Restoring manually

For detailed instructions on restoring files manually, without using any of the Arius tools, please consult the Restore Manually section.

Advanced

Deduplication

Arius employs deduplication to optimize storage efficiency. For detailed explanations, diagrams, and benchmarks on deduplication, refer to the Deduplication section in the documentation.

Technical Documentation

Dependencies

Arius.Core Architecture

Arius.Core Domain Model

Attributions

Arius Icon by Freepik.

Many thanks to ReSharper and PostSharp for their open source generosity.

About

Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier.

Topics

Resources

Stars

14 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - woutervanranst/Arius: Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier. · GitHub
Skip to content
This repository was archived by the owner on Jun 28, 2026. It is now read-only.

Latest commit

History

1,384 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Arius: a Lightweight Tiered Archival Solution for Azure Blob Storage

CIcodecovCodeQL

DockerClickOnce

Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier.

The name derives from the Greek for 'immortal'.

Important

As of June 27, 2026, this repository is read-only and no longer maintained.

Arius7 is the successor and receives all new development: Arius7.

Why?

  1. Supporting 3-2-1 Backup Strategy: Arius offers a secure and cost-effective offsite backup solution, complementing offline disk backups. The use of Azure Blob Archive tier allows for low-cost archiving, approximately 1 EUR per TB per month.

  2. Single Pane of Glass: Arius ensures seamless visibility to offline backups without requiring a separate application. By creating small "pointers" locally, they remain present in the local filesystem and easily discoverable in Windows Explorer.

  3. Encryption: For those with privacy concerns, Arius uses AES256/openssl-compatible encryption, providing robust client-side encryption.

  4. Deduplication: Arius does not store duplicate files or file parts. It offers file-level deduplication by default and allows optional variable block size deduplication within files.

How

Arius is a command-line tool (CLI) that can be run manually or scheduled. It can also be run as a Docker container.

Arius Explorer is a Windows application that offers a graphical user interface into an Arius repository.

Arius Explorer

Install it via ClickOnce by clicking on the shield at the top of the page.

The status icon is a combination of the state in the local file system (left half moon) and the state in the repository (right half moon). For example:

IconLocal file systenAzure Repository
Not presentPointer and Binary
Only the PointerPointer and Binary
Pointer and BinaryPointer and Binary

Arius CLI

Archive to Azure

CLI:

arius archive <path>
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--remove-local]
[--tier=<hot/cool/archive>]
[--dedup]
[--fasthash]

CLI in Docker:

docker run
-v <absolute_path_to_archive>:/archive
[-v <absolute_path_to_logs>:/logs]
woutervanranst/arius
archive
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--remove-local]
[--tier=<hot/cool/archive>]
[--dedup]
[--fasthash]

Restore from Azure

CLI:

arius restore <path>
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--synchronize]
[--download]
[--keep-pointers]

CLI in Docker:

docker run
-v <absolute_path_to_archive>:/archive
[-v <absolute_path_to_logs>:/logs]
woutervanranst/arius
restore
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--synchronize]
[--download]
[--keep-pointers]

Arguments

ArgumentDescriptionNotes
pathThe path on the local file systemFor archive:
The root directory to archive

For restore:
  • If path is a directory: restore all pointer files in the (sub)directories.
  • If path is a file: restore this file.
logpathPath to the folder to store the logsOPTIONAL. NOTE: Only for Docker.
‑‑accountname, ‑nStorage Account Name
‑‑accountkey, ‑kStorage Account KeyCan be set through:
  • Argument
  • Environment variable ARIUS_ACCOUNT_KEY
  • Docker environment variable ARIUS_ACCOUNT_KEY
‑‑passphrase, ‑pPassphrase with which the blobs are encrypted
‑‑container, ‑cBlob container to useOPTIONAL. Default: 'arius'.
‑‑remove-localRemove local file after a successful uploadarchive-only
OPTIONAL. Default: Local files are not deleted after archiving.
‑‑tierBlob storage tier (hot/cool/archive)archive-only
OPTIONAL. Default: 'archive'.
‑‑dedupDeduplicate on block levelarchive-only
OPTIONAL. Default: deduplicate on file level.
‑‑fasthashWhen a pointer file is present, use that hash instead of re-hashing the full file againarchive-only
OPTIONAL. Default: false.
NOTE: Do NOT use this if the contents of the files are modified. Arius will not pick up the changes.
‑‑synchronizeBring the structure of the local file system (pointer files) in line with the latest state of the remote repositoryrestore-only
OPTIONAL. Default: do not synchronize.
This command only touches the pointers (ie. .pointer.arius files). Other files are left untouched:
  • Pointers that exist in the archive but not locally are created.
  • Pointers that exist locally but not in the archive are deleted
‑‑downloadDownload and restore the actual file (contents)restore-only
OPTIONAL. Default: do not download.
NOTE: If the file is in the archive blob tier, hydration to an online tier is started. Run the restore command again after ~15 hours to download the file.
‑‑keep-pointersKeep pointer files after downloading content filesrestore-only
OPTIONAL. Default: keep the pointers.

Restoring manually

For detailed instructions on restoring files manually, without using any of the Arius tools, please consult the Restore Manually section.

Advanced

Deduplication

Arius employs deduplication to optimize storage efficiency. For detailed explanations, diagrams, and benchmarks on deduplication, refer to the Deduplication section in the documentation.

Technical Documentation

Dependencies

Arius.Core Architecture

Arius.Core Domain Model

Attributions

Arius Icon by Freepik.

Many thanks to ReSharper and PostSharp for their open source generosity.

About

Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier.

Topics

Resources

Stars

14 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - woutervanranst/Arius: Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier. · GitHub
Skip to content
This repository was archived by the owner on Jun 28, 2026. It is now read-only.

Latest commit

History

1,384 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Arius: a Lightweight Tiered Archival Solution for Azure Blob Storage

CIcodecovCodeQL

DockerClickOnce

Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier.

The name derives from the Greek for 'immortal'.

Important

As of June 27, 2026, this repository is read-only and no longer maintained.

Arius7 is the successor and receives all new development: Arius7.

Why?

  1. Supporting 3-2-1 Backup Strategy: Arius offers a secure and cost-effective offsite backup solution, complementing offline disk backups. The use of Azure Blob Archive tier allows for low-cost archiving, approximately 1 EUR per TB per month.

  2. Single Pane of Glass: Arius ensures seamless visibility to offline backups without requiring a separate application. By creating small "pointers" locally, they remain present in the local filesystem and easily discoverable in Windows Explorer.

  3. Encryption: For those with privacy concerns, Arius uses AES256/openssl-compatible encryption, providing robust client-side encryption.

  4. Deduplication: Arius does not store duplicate files or file parts. It offers file-level deduplication by default and allows optional variable block size deduplication within files.

How

Arius is a command-line tool (CLI) that can be run manually or scheduled. It can also be run as a Docker container.

Arius Explorer is a Windows application that offers a graphical user interface into an Arius repository.

Arius Explorer

Install it via ClickOnce by clicking on the shield at the top of the page.

The status icon is a combination of the state in the local file system (left half moon) and the state in the repository (right half moon). For example:

IconLocal file systenAzure Repository
Not presentPointer and Binary
Only the PointerPointer and Binary
Pointer and BinaryPointer and Binary

Arius CLI

Archive to Azure

CLI:

arius archive <path>
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--remove-local]
[--tier=<hot/cool/archive>]
[--dedup]
[--fasthash]

CLI in Docker:

docker run
-v <absolute_path_to_archive>:/archive
[-v <absolute_path_to_logs>:/logs]
woutervanranst/arius
archive
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--remove-local]
[--tier=<hot/cool/archive>]
[--dedup]
[--fasthash]

Restore from Azure

CLI:

arius restore <path>
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--synchronize]
[--download]
[--keep-pointers]

CLI in Docker:

docker run
-v <absolute_path_to_archive>:/archive
[-v <absolute_path_to_logs>:/logs]
woutervanranst/arius
restore
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--synchronize]
[--download]
[--keep-pointers]

Arguments

ArgumentDescriptionNotes
pathThe path on the local file systemFor archive:
The root directory to archive

For restore:
  • If path is a directory: restore all pointer files in the (sub)directories.
  • If path is a file: restore this file.
logpathPath to the folder to store the logsOPTIONAL. NOTE: Only for Docker.
‑‑accountname, ‑nStorage Account Name
‑‑accountkey, ‑kStorage Account KeyCan be set through:
  • Argument
  • Environment variable ARIUS_ACCOUNT_KEY
  • Docker environment variable ARIUS_ACCOUNT_KEY
‑‑passphrase, ‑pPassphrase with which the blobs are encrypted
‑‑container, ‑cBlob container to useOPTIONAL. Default: 'arius'.
‑‑remove-localRemove local file after a successful uploadarchive-only
OPTIONAL. Default: Local files are not deleted after archiving.
‑‑tierBlob storage tier (hot/cool/archive)archive-only
OPTIONAL. Default: 'archive'.
‑‑dedupDeduplicate on block levelarchive-only
OPTIONAL. Default: deduplicate on file level.
‑‑fasthashWhen a pointer file is present, use that hash instead of re-hashing the full file againarchive-only
OPTIONAL. Default: false.
NOTE: Do NOT use this if the contents of the files are modified. Arius will not pick up the changes.
‑‑synchronizeBring the structure of the local file system (pointer files) in line with the latest state of the remote repositoryrestore-only
OPTIONAL. Default: do not synchronize.
This command only touches the pointers (ie. .pointer.arius files). Other files are left untouched:
  • Pointers that exist in the archive but not locally are created.
  • Pointers that exist locally but not in the archive are deleted
‑‑downloadDownload and restore the actual file (contents)restore-only
OPTIONAL. Default: do not download.
NOTE: If the file is in the archive blob tier, hydration to an online tier is started. Run the restore command again after ~15 hours to download the file.
‑‑keep-pointersKeep pointer files after downloading content filesrestore-only
OPTIONAL. Default: keep the pointers.

Restoring manually

For detailed instructions on restoring files manually, without using any of the Arius tools, please consult the Restore Manually section.

Advanced

Deduplication

Arius employs deduplication to optimize storage efficiency. For detailed explanations, diagrams, and benchmarks on deduplication, refer to the Deduplication section in the documentation.

Technical Documentation

Dependencies

Arius.Core Architecture

Arius.Core Domain Model

Attributions

Arius Icon by Freepik.

Many thanks to ReSharper and PostSharp for their open source generosity.

About

Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier.

Topics

Resources

Stars

14 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - woutervanranst/Arius: Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier. · GitHub
Skip to content
This repository was archived by the owner on Jun 28, 2026. It is now read-only.

Latest commit

History

1,384 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Arius: a Lightweight Tiered Archival Solution for Azure Blob Storage

CIcodecovCodeQL

DockerClickOnce

Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier.

The name derives from the Greek for 'immortal'.

Important

As of June 27, 2026, this repository is read-only and no longer maintained.

Arius7 is the successor and receives all new development: Arius7.

Why?

  1. Supporting 3-2-1 Backup Strategy: Arius offers a secure and cost-effective offsite backup solution, complementing offline disk backups. The use of Azure Blob Archive tier allows for low-cost archiving, approximately 1 EUR per TB per month.

  2. Single Pane of Glass: Arius ensures seamless visibility to offline backups without requiring a separate application. By creating small "pointers" locally, they remain present in the local filesystem and easily discoverable in Windows Explorer.

  3. Encryption: For those with privacy concerns, Arius uses AES256/openssl-compatible encryption, providing robust client-side encryption.

  4. Deduplication: Arius does not store duplicate files or file parts. It offers file-level deduplication by default and allows optional variable block size deduplication within files.

How

Arius is a command-line tool (CLI) that can be run manually or scheduled. It can also be run as a Docker container.

Arius Explorer is a Windows application that offers a graphical user interface into an Arius repository.

Arius Explorer

Install it via ClickOnce by clicking on the shield at the top of the page.

The status icon is a combination of the state in the local file system (left half moon) and the state in the repository (right half moon). For example:

IconLocal file systenAzure Repository
Not presentPointer and Binary
Only the PointerPointer and Binary
Pointer and BinaryPointer and Binary

Arius CLI

Archive to Azure

CLI:

arius archive <path>
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--remove-local]
[--tier=<hot/cool/archive>]
[--dedup]
[--fasthash]

CLI in Docker:

docker run
-v <absolute_path_to_archive>:/archive
[-v <absolute_path_to_logs>:/logs]
woutervanranst/arius
archive
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--remove-local]
[--tier=<hot/cool/archive>]
[--dedup]
[--fasthash]

Restore from Azure

CLI:

arius restore <path>
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--synchronize]
[--download]
[--keep-pointers]

CLI in Docker:

docker run
-v <absolute_path_to_archive>:/archive
[-v <absolute_path_to_logs>:/logs]
woutervanranst/arius
restore
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--synchronize]
[--download]
[--keep-pointers]

Arguments

ArgumentDescriptionNotes
pathThe path on the local file systemFor archive:
The root directory to archive

For restore:
  • If path is a directory: restore all pointer files in the (sub)directories.
  • If path is a file: restore this file.
logpathPath to the folder to store the logsOPTIONAL. NOTE: Only for Docker.
‑‑accountname, ‑nStorage Account Name
‑‑accountkey, ‑kStorage Account KeyCan be set through:
  • Argument
  • Environment variable ARIUS_ACCOUNT_KEY
  • Docker environment variable ARIUS_ACCOUNT_KEY
‑‑passphrase, ‑pPassphrase with which the blobs are encrypted
‑‑container, ‑cBlob container to useOPTIONAL. Default: 'arius'.
‑‑remove-localRemove local file after a successful uploadarchive-only
OPTIONAL. Default: Local files are not deleted after archiving.
‑‑tierBlob storage tier (hot/cool/archive)archive-only
OPTIONAL. Default: 'archive'.
‑‑dedupDeduplicate on block levelarchive-only
OPTIONAL. Default: deduplicate on file level.
‑‑fasthashWhen a pointer file is present, use that hash instead of re-hashing the full file againarchive-only
OPTIONAL. Default: false.
NOTE: Do NOT use this if the contents of the files are modified. Arius will not pick up the changes.
‑‑synchronizeBring the structure of the local file system (pointer files) in line with the latest state of the remote repositoryrestore-only
OPTIONAL. Default: do not synchronize.
This command only touches the pointers (ie. .pointer.arius files). Other files are left untouched:
  • Pointers that exist in the archive but not locally are created.
  • Pointers that exist locally but not in the archive are deleted
‑‑downloadDownload and restore the actual file (contents)restore-only
OPTIONAL. Default: do not download.
NOTE: If the file is in the archive blob tier, hydration to an online tier is started. Run the restore command again after ~15 hours to download the file.
‑‑keep-pointersKeep pointer files after downloading content filesrestore-only
OPTIONAL. Default: keep the pointers.

Restoring manually

For detailed instructions on restoring files manually, without using any of the Arius tools, please consult the Restore Manually section.

Advanced

Deduplication

Arius employs deduplication to optimize storage efficiency. For detailed explanations, diagrams, and benchmarks on deduplication, refer to the Deduplication section in the documentation.

Technical Documentation

Dependencies

Arius.Core Architecture

Arius.Core Domain Model

Attributions

Arius Icon by Freepik.

Many thanks to ReSharper and PostSharp for their open source generosity.

About

Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier.

Topics

Resources

Stars

14 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - woutervanranst/Arius: Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier. · GitHub
Skip to content
This repository was archived by the owner on Jun 28, 2026. It is now read-only.

Latest commit

History

1,384 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Arius: a Lightweight Tiered Archival Solution for Azure Blob Storage

CIcodecovCodeQL

DockerClickOnce

Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier.

The name derives from the Greek for 'immortal'.

Important

As of June 27, 2026, this repository is read-only and no longer maintained.

Arius7 is the successor and receives all new development: Arius7.

Why?

  1. Supporting 3-2-1 Backup Strategy: Arius offers a secure and cost-effective offsite backup solution, complementing offline disk backups. The use of Azure Blob Archive tier allows for low-cost archiving, approximately 1 EUR per TB per month.

  2. Single Pane of Glass: Arius ensures seamless visibility to offline backups without requiring a separate application. By creating small "pointers" locally, they remain present in the local filesystem and easily discoverable in Windows Explorer.

  3. Encryption: For those with privacy concerns, Arius uses AES256/openssl-compatible encryption, providing robust client-side encryption.

  4. Deduplication: Arius does not store duplicate files or file parts. It offers file-level deduplication by default and allows optional variable block size deduplication within files.

How

Arius is a command-line tool (CLI) that can be run manually or scheduled. It can also be run as a Docker container.

Arius Explorer is a Windows application that offers a graphical user interface into an Arius repository.

Arius Explorer

Install it via ClickOnce by clicking on the shield at the top of the page.

The status icon is a combination of the state in the local file system (left half moon) and the state in the repository (right half moon). For example:

IconLocal file systenAzure Repository
Not presentPointer and Binary
Only the PointerPointer and Binary
Pointer and BinaryPointer and Binary

Arius CLI

Archive to Azure

CLI:

arius archive <path>
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--remove-local]
[--tier=<hot/cool/archive>]
[--dedup]
[--fasthash]

CLI in Docker:

docker run
-v <absolute_path_to_archive>:/archive
[-v <absolute_path_to_logs>:/logs]
woutervanranst/arius
archive
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--remove-local]
[--tier=<hot/cool/archive>]
[--dedup]
[--fasthash]

Restore from Azure

CLI:

arius restore <path>
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--synchronize]
[--download]
[--keep-pointers]

CLI in Docker:

docker run
-v <absolute_path_to_archive>:/archive
[-v <absolute_path_to_logs>:/logs]
woutervanranst/arius
restore
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--synchronize]
[--download]
[--keep-pointers]

Arguments

ArgumentDescriptionNotes
pathThe path on the local file systemFor archive:
The root directory to archive

For restore:
  • If path is a directory: restore all pointer files in the (sub)directories.
  • If path is a file: restore this file.
logpathPath to the folder to store the logsOPTIONAL. NOTE: Only for Docker.
‑‑accountname, ‑nStorage Account Name
‑‑accountkey, ‑kStorage Account KeyCan be set through:
  • Argument
  • Environment variable ARIUS_ACCOUNT_KEY
  • Docker environment variable ARIUS_ACCOUNT_KEY
‑‑passphrase, ‑pPassphrase with which the blobs are encrypted
‑‑container, ‑cBlob container to useOPTIONAL. Default: 'arius'.
‑‑remove-localRemove local file after a successful uploadarchive-only
OPTIONAL. Default: Local files are not deleted after archiving.
‑‑tierBlob storage tier (hot/cool/archive)archive-only
OPTIONAL. Default: 'archive'.
‑‑dedupDeduplicate on block levelarchive-only
OPTIONAL. Default: deduplicate on file level.
‑‑fasthashWhen a pointer file is present, use that hash instead of re-hashing the full file againarchive-only
OPTIONAL. Default: false.
NOTE: Do NOT use this if the contents of the files are modified. Arius will not pick up the changes.
‑‑synchronizeBring the structure of the local file system (pointer files) in line with the latest state of the remote repositoryrestore-only
OPTIONAL. Default: do not synchronize.
This command only touches the pointers (ie. .pointer.arius files). Other files are left untouched:
  • Pointers that exist in the archive but not locally are created.
  • Pointers that exist locally but not in the archive are deleted
‑‑downloadDownload and restore the actual file (contents)restore-only
OPTIONAL. Default: do not download.
NOTE: If the file is in the archive blob tier, hydration to an online tier is started. Run the restore command again after ~15 hours to download the file.
‑‑keep-pointersKeep pointer files after downloading content filesrestore-only
OPTIONAL. Default: keep the pointers.

Restoring manually

For detailed instructions on restoring files manually, without using any of the Arius tools, please consult the Restore Manually section.

Advanced

Deduplication

Arius employs deduplication to optimize storage efficiency. For detailed explanations, diagrams, and benchmarks on deduplication, refer to the Deduplication section in the documentation.

Technical Documentation

Dependencies

Arius.Core Architecture

Arius.Core Domain Model

Attributions

Arius Icon by Freepik.

Many thanks to ReSharper and PostSharp for their open source generosity.

About

Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier.

Topics

Resources

Stars

14 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - woutervanranst/Arius: Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier. · GitHub
Skip to content
This repository was archived by the owner on Jun 28, 2026. It is now read-only.

Latest commit

History

1,384 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Arius: a Lightweight Tiered Archival Solution for Azure Blob Storage

CIcodecovCodeQL

DockerClickOnce

Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier.

The name derives from the Greek for 'immortal'.

Important

As of June 27, 2026, this repository is read-only and no longer maintained.

Arius7 is the successor and receives all new development: Arius7.

Why?

  1. Supporting 3-2-1 Backup Strategy: Arius offers a secure and cost-effective offsite backup solution, complementing offline disk backups. The use of Azure Blob Archive tier allows for low-cost archiving, approximately 1 EUR per TB per month.

  2. Single Pane of Glass: Arius ensures seamless visibility to offline backups without requiring a separate application. By creating small "pointers" locally, they remain present in the local filesystem and easily discoverable in Windows Explorer.

  3. Encryption: For those with privacy concerns, Arius uses AES256/openssl-compatible encryption, providing robust client-side encryption.

  4. Deduplication: Arius does not store duplicate files or file parts. It offers file-level deduplication by default and allows optional variable block size deduplication within files.

How

Arius is a command-line tool (CLI) that can be run manually or scheduled. It can also be run as a Docker container.

Arius Explorer is a Windows application that offers a graphical user interface into an Arius repository.

Arius Explorer

Install it via ClickOnce by clicking on the shield at the top of the page.

The status icon is a combination of the state in the local file system (left half moon) and the state in the repository (right half moon). For example:

IconLocal file systenAzure Repository
Not presentPointer and Binary
Only the PointerPointer and Binary
Pointer and BinaryPointer and Binary

Arius CLI

Archive to Azure

CLI:

arius archive <path>
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--remove-local]
[--tier=<hot/cool/archive>]
[--dedup]
[--fasthash]

CLI in Docker:

docker run
-v <absolute_path_to_archive>:/archive
[-v <absolute_path_to_logs>:/logs]
woutervanranst/arius
archive
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--remove-local]
[--tier=<hot/cool/archive>]
[--dedup]
[--fasthash]

Restore from Azure

CLI:

arius restore <path>
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--synchronize]
[--download]
[--keep-pointers]

CLI in Docker:

docker run
-v <absolute_path_to_archive>:/archive
[-v <absolute_path_to_logs>:/logs]
woutervanranst/arius
restore
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--synchronize]
[--download]
[--keep-pointers]

Arguments

ArgumentDescriptionNotes
pathThe path on the local file systemFor archive:
The root directory to archive

For restore:
  • If path is a directory: restore all pointer files in the (sub)directories.
  • If path is a file: restore this file.
logpathPath to the folder to store the logsOPTIONAL. NOTE: Only for Docker.
‑‑accountname, ‑nStorage Account Name
‑‑accountkey, ‑kStorage Account KeyCan be set through:
  • Argument
  • Environment variable ARIUS_ACCOUNT_KEY
  • Docker environment variable ARIUS_ACCOUNT_KEY
‑‑passphrase, ‑pPassphrase with which the blobs are encrypted
‑‑container, ‑cBlob container to useOPTIONAL. Default: 'arius'.
‑‑remove-localRemove local file after a successful uploadarchive-only
OPTIONAL. Default: Local files are not deleted after archiving.
‑‑tierBlob storage tier (hot/cool/archive)archive-only
OPTIONAL. Default: 'archive'.
‑‑dedupDeduplicate on block levelarchive-only
OPTIONAL. Default: deduplicate on file level.
‑‑fasthashWhen a pointer file is present, use that hash instead of re-hashing the full file againarchive-only
OPTIONAL. Default: false.
NOTE: Do NOT use this if the contents of the files are modified. Arius will not pick up the changes.
‑‑synchronizeBring the structure of the local file system (pointer files) in line with the latest state of the remote repositoryrestore-only
OPTIONAL. Default: do not synchronize.
This command only touches the pointers (ie. .pointer.arius files). Other files are left untouched:
  • Pointers that exist in the archive but not locally are created.
  • Pointers that exist locally but not in the archive are deleted
‑‑downloadDownload and restore the actual file (contents)restore-only
OPTIONAL. Default: do not download.
NOTE: If the file is in the archive blob tier, hydration to an online tier is started. Run the restore command again after ~15 hours to download the file.
‑‑keep-pointersKeep pointer files after downloading content filesrestore-only
OPTIONAL. Default: keep the pointers.

Restoring manually

For detailed instructions on restoring files manually, without using any of the Arius tools, please consult the Restore Manually section.

Advanced

Deduplication

Arius employs deduplication to optimize storage efficiency. For detailed explanations, diagrams, and benchmarks on deduplication, refer to the Deduplication section in the documentation.

Technical Documentation

Dependencies

Arius.Core Architecture

Arius.Core Domain Model

Attributions

Arius Icon by Freepik.

Many thanks to ReSharper and PostSharp for their open source generosity.

About

Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier.

Topics

Resources

Stars

14 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - woutervanranst/Arius: Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier. · GitHub
Skip to content
This repository was archived by the owner on Jun 28, 2026. It is now read-only.

Latest commit

History

1,384 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Arius: a Lightweight Tiered Archival Solution for Azure Blob Storage

CIcodecovCodeQL

DockerClickOnce

Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier.

The name derives from the Greek for 'immortal'.

Important

As of June 27, 2026, this repository is read-only and no longer maintained.

Arius7 is the successor and receives all new development: Arius7.

Why?

  1. Supporting 3-2-1 Backup Strategy: Arius offers a secure and cost-effective offsite backup solution, complementing offline disk backups. The use of Azure Blob Archive tier allows for low-cost archiving, approximately 1 EUR per TB per month.

  2. Single Pane of Glass: Arius ensures seamless visibility to offline backups without requiring a separate application. By creating small "pointers" locally, they remain present in the local filesystem and easily discoverable in Windows Explorer.

  3. Encryption: For those with privacy concerns, Arius uses AES256/openssl-compatible encryption, providing robust client-side encryption.

  4. Deduplication: Arius does not store duplicate files or file parts. It offers file-level deduplication by default and allows optional variable block size deduplication within files.

How

Arius is a command-line tool (CLI) that can be run manually or scheduled. It can also be run as a Docker container.

Arius Explorer is a Windows application that offers a graphical user interface into an Arius repository.

Arius Explorer

Install it via ClickOnce by clicking on the shield at the top of the page.

The status icon is a combination of the state in the local file system (left half moon) and the state in the repository (right half moon). For example:

IconLocal file systenAzure Repository
Not presentPointer and Binary
Only the PointerPointer and Binary
Pointer and BinaryPointer and Binary

Arius CLI

Archive to Azure

CLI:

arius archive <path>
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--remove-local]
[--tier=<hot/cool/archive>]
[--dedup]
[--fasthash]

CLI in Docker:

docker run
-v <absolute_path_to_archive>:/archive
[-v <absolute_path_to_logs>:/logs]
woutervanranst/arius
archive
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--remove-local]
[--tier=<hot/cool/archive>]
[--dedup]
[--fasthash]

Restore from Azure

CLI:

arius restore <path>
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--synchronize]
[--download]
[--keep-pointers]

CLI in Docker:

docker run
-v <absolute_path_to_archive>:/archive
[-v <absolute_path_to_logs>:/logs]
woutervanranst/arius
restore
--accountname <accountname>
--accountkey <accountkey>
--passphrase <passphrase>
--container <containername>
[--synchronize]
[--download]
[--keep-pointers]

Arguments

ArgumentDescriptionNotes
pathThe path on the local file systemFor archive:
The root directory to archive

For restore:
  • If path is a directory: restore all pointer files in the (sub)directories.
  • If path is a file: restore this file.
logpathPath to the folder to store the logsOPTIONAL. NOTE: Only for Docker.
‑‑accountname, ‑nStorage Account Name
‑‑accountkey, ‑kStorage Account KeyCan be set through:
  • Argument
  • Environment variable ARIUS_ACCOUNT_KEY
  • Docker environment variable ARIUS_ACCOUNT_KEY
‑‑passphrase, ‑pPassphrase with which the blobs are encrypted
‑‑container, ‑cBlob container to useOPTIONAL. Default: 'arius'.
‑‑remove-localRemove local file after a successful uploadarchive-only
OPTIONAL. Default: Local files are not deleted after archiving.
‑‑tierBlob storage tier (hot/cool/archive)archive-only
OPTIONAL. Default: 'archive'.
‑‑dedupDeduplicate on block levelarchive-only
OPTIONAL. Default: deduplicate on file level.
‑‑fasthashWhen a pointer file is present, use that hash instead of re-hashing the full file againarchive-only
OPTIONAL. Default: false.
NOTE: Do NOT use this if the contents of the files are modified. Arius will not pick up the changes.
‑‑synchronizeBring the structure of the local file system (pointer files) in line with the latest state of the remote repositoryrestore-only
OPTIONAL. Default: do not synchronize.
This command only touches the pointers (ie. .pointer.arius files). Other files are left untouched:
  • Pointers that exist in the archive but not locally are created.
  • Pointers that exist locally but not in the archive are deleted
‑‑downloadDownload and restore the actual file (contents)restore-only
OPTIONAL. Default: do not download.
NOTE: If the file is in the archive blob tier, hydration to an online tier is started. Run the restore command again after ~15 hours to download the file.
‑‑keep-pointersKeep pointer files after downloading content filesrestore-only
OPTIONAL. Default: keep the pointers.

Restoring manually

For detailed instructions on restoring files manually, without using any of the Arius tools, please consult the Restore Manually section.

Advanced

Deduplication

Arius employs deduplication to optimize storage efficiency. For detailed explanations, diagrams, and benchmarks on deduplication, refer to the Deduplication section in the documentation.

Technical Documentation

Dependencies

Arius.Core Architecture

Arius.Core Domain Model

Attributions

Arius Icon by Freepik.

Many thanks to ReSharper and PostSharp for their open source generosity.

About

Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier.

Topics

Resources

Stars

14 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages