Skip to main content

Introduction

GooseFS is a high-performance distributed caching file system built on top of COS (Cloud Object Storage). It accelerates data access for big data and AI/ML workloads with a unified namespace and an intelligent caching layer between compute engines and cloud storage.

This site documents the GooseFS client libraries for Rust and Python, developed in the tencent-goosefs-rust-sdk repository. These clients talk directly to GooseFS Master/Worker over gRPC and let you:

  • Manage files and directories (create, list, rename, delete, get status)
  • Read and write data with high-level streaming APIs
  • Accelerate hot reads with client local page cache and short-circuit mmap
  • Observe client behavior via Master heartbeat and Prometheus Pushgateway metrics

Architecture

The Rust crate (goosefs-sdk) is Layer 3 in the Lance → OpenDAL → GooseFS stack:

┌────────────────────────────────────────────────────────────────┐
│ Layer 1 — Lance Provider (lance-io / ObjectStore) │
├────────────────────────────────────────────────────────────────┤
│ Layer 2 — OpenDAL GooseFS Service (opendal::services) │
├────────────────────────────────────────────────────────────────┤
│ Layer 3 — GooseFS Rust gRPC Client ← this project │
│ │
│ FileSystem / BaseFileSystem / FileSystemContext │
│ GoosefsFileInStream / GoosefsFileWriter / GoosefsFileReader │
│ MasterClient / WorkerClient / WorkerRouter │
│ Page cache · Short-circuit · Metrics │
└────────────────────────────────────────────────────────────────┘

Client Overview

RustPython
Packagegoosefs-sdk on crates.iogoosefs on PyPI
Async runtimeTokioSync (Goosefs) + Async (AsyncGoosefs)
API styleFileSystem trait + high-level I/O helpersBlocking + coroutine APIs over the Rust SDK
Python bridgePyO3 (abi3, CPython 3.9+)
StatusExperimental (v0.1.x)Alpha (tracks Rust SDK version)

Prerequisites

You need a running GooseFS cluster (Master RPC default 9200, Worker data port default 9203).

For local development, this repository ships a Docker fixture:

bash scripts/ci/goosefs-up.sh
export GOOSEFS_MASTER_ADDR=127.0.0.1:9200
export GOOSEFS_AUTH_TYPE=simple

How This Guide Is Organised

  • Rust — installation, FileSystem API, configuration, page cache, short-circuit, metrics, and examples
  • Python — installation, sync/async quickstart, and binding examples
  • Contributing — build, test, and PR conventions
  • Release — publishing goosefs-sdk and the Python wheel