Skip to main content

vosfs

CI Python License: AGPL-3.0-or-later

vosfs is an asynchronous fsspec filesystem for OpenCADC Cavern VOSpace. It registers the vos protocol so fsspec-aware tools can read, write, inspect, and manage VOSpace files and directories. Supported tools include pandas, NumPy, Dask, Zarr, and PyArrow.

Supported host platforms are Linux and macOS. Other platforms are untested and unsupported.

Install

uv add "git+https://github.com/opencadc/fsspec-tools@main#subdirectory=libs/vosfs"

Quick start

The synchronous fsspec API uses async network I/O internally. To authenticate, set VOSFS_CERT_FILE to a combined proxy-certificate and private-key PEM file:

export VOSFS_CERT_FILE=/absolute/path/to/cadcproxy.pem
import fsspec

fs = fsspec.filesystem("vos", endpoint_url="https://staging.canfar.net/arc")
try:
    print(fs.ls("/home/<cadc-username>"))
finally:
    fs.close()

Capabilities

fsspec operation Support
ls, info, exists, walk, find, glob Listing and metadata
cat_file, cat_ranges Response-validated HTTP ranges with whole-object fallback
get, open("rb") Whole-object downloads; open stages to disk by default and uses ranges when block_size or cache_type is supplied
pipe_file, put, open("wb") Whole-object staged writes
mkdir, makedirs, rm, rmdir Namespace creation and deletion
cp Client-side copy; an internal same-authority LinkNode materializes target bytes, while an external or non-VOS LinkNode raises NotImplementedError before mutation
mv Same-service moveNode job when available; otherwise copy, verify, then delete. LinkNode moves raise NotImplementedError before mutation
Append/update modes, FUSE Unsupported

vosfs targets the OpenCADC VOSpace profile only; it does not claim generic IVOA VOSpace 2.1 conformance. The full capability contract and fsspec support matrix are in docs/design/trd.md.

Documentation

The vosfs documentation contains the user guide, recipes, troubleshooting, the public API reference, and the fss-cli integration guide.

The design contract for fss-cli lives in libs/fss-cli/docs/design/ and the architecture decisions in docs/adr/.

See CONTRIBUTING.md to work on the project. Public documentation source lives under docs/user/; validate it locally from the repository root with:

uv run --all-packages zensical build --strict --clean

License

Copyright (c) 2026 National Research Council of Canada / Government of Canada.

vosfs is distributed under the terms of the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). vosfs 0.11.0 and earlier releases were published under the BSD 3-Clause License.

Metadata

Release files for vosfs 0.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vosfs 0.12.0
File Size Uploaded Provenance
vosfs-0.12.0.tar.gz 73.2 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for vosfs 0.12.0
File Interpreter ABI Platform
vosfs-0.12.0-py3-none-any.whl Python 3 none any Details

Total release size: 153.4 kB

Release files / vosfs-0.12.0.tar.gz

Download URL vosfs-0.12.0.tar.gz
Size 73.2 kB
Tags Source
SHA-256 checksum
How to use checksums
659152d3d2267f856d68d484a0332fc2c62ba2d1792e839a64a6c730ff353931
BLAKE2b-256 checksum
How to use checksums
5076b99fe0d6d07109baeb2b8a1e7c79c75d7a343f87ec176991c7c77e107398
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / vosfs-0.12.0-py3-none-any.whl

Download URL vosfs-0.12.0-py3-none-any.whl
Size 80.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e0557bdf902713daefed2b497192129e858d1d88c466134c4cd37594738033b9
BLAKE2b-256 checksum
How to use checksums
d83e8ba4e5499845bed5945c82b332a4c43c032328c1b39bced341f25998b5bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Security for vosfs 0.12.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for vosfs-0.12.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.12.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page