Skip to content

Releases: donge/clickfs

clickfs v0.4.2

Choose a tag to compare

@github-actions github-actions released this 04 May 12:01

Install

curl -fsSL https://donge.github.io/clickfs/install.sh | sh

Or with cargo:

cargo install clickfs
# or, prebuilt:
cargo binstall clickfs

Assets

Each platform has a .tar.gz containing the clickfs binary, plus a .sha256 checksum file.

platform asset
Linux x86_64 clickfs-v0.4.2-linux-x86_64.tar.gz
Linux aarch64 clickfs-v0.4.2-linux-aarch64.tar.gz
macOS arm64 clickfs-v0.4.2-macos-arm64.tar.gz

clickfs v0.4.1

Choose a tag to compare

@github-actions github-actions released this 04 May 08:44

Install

curl -fsSL https://donge.github.io/clickfs/install.sh | sh

Or with cargo:

cargo install clickfs
# or, prebuilt:
cargo binstall clickfs

Assets

Each platform has a .tar.gz containing the clickfs binary, plus a .sha256 checksum file.

platform asset
Linux x86_64 clickfs-v0.4.1-linux-x86_64.tar.gz
Linux aarch64 clickfs-v0.4.1-linux-aarch64.tar.gz
macOS arm64 clickfs-v0.4.1-macos-arm64.tar.gz

clickfs v0.4.0

Choose a tag to compare

@github-actions github-actions released this 04 May 06:13

Install

curl -fsSL https://donge.github.io/clickfs/install.sh | sh

Or with cargo:

cargo install clickfs
# or, prebuilt:
cargo binstall clickfs

Assets

Each platform has a .tar.gz containing the clickfs binary, plus a .sha256 checksum file.

platform asset
Linux x86_64 clickfs-v0.4.0-linux-x86_64.tar.gz
Linux aarch64 clickfs-v0.4.0-linux-aarch64.tar.gz
macOS arm64 clickfs-v0.4.0-macos-arm64.tar.gz

clickfs v0.3.2

Choose a tag to compare

@github-actions github-actions released this 04 May 05:44

Install

curl -fsSL https://donge.github.io/clickfs/install.sh | sh

Or with cargo:

cargo install clickfs
# or, prebuilt:
cargo binstall clickfs

Assets

Each platform has a .tar.gz containing the clickfs binary, plus a .sha256 checksum file.

platform asset
Linux x86_64 clickfs-v0.3.2-linux-x86_64.tar.gz
Linux aarch64 clickfs-v0.3.2-linux-aarch64.tar.gz
macOS arm64 clickfs-v0.3.2-macos-arm64.tar.gz

clickfs v0.3.1

Choose a tag to compare

@github-actions github-actions released this 04 May 03:04

Install

curl -fsSL https://donge.github.io/clickfs/install.sh | sh

Or with cargo:

cargo install clickfs
# or, prebuilt:
cargo binstall clickfs

Assets

Each platform has a .tar.gz containing the clickfs binary, plus a .sha256 checksum file.

platform asset
Linux x86_64 clickfs-v0.3.1-linux-x86_64.tar.gz
Linux aarch64 clickfs-v0.3.1-linux-aarch64.tar.gz
macOS arm64 clickfs-v0.3.1-macos-arm64.tar.gz

clickfs v0.3.0

Choose a tag to compare

@github-actions github-actions released this 04 May 02:55

Install

curl -fsSL https://donge.github.io/clickfs/install.sh | sh

Or with cargo:

cargo install clickfs
# or, prebuilt:
cargo binstall clickfs

Assets

Each platform has a .tar.gz containing the clickfs binary, plus a .sha256 checksum file.

platform asset
Linux x86_64 clickfs-v0.3.0-linux-x86_64.tar.gz
Linux aarch64 clickfs-v0.3.0-linux-aarch64.tar.gz
macOS arm64 clickfs-v0.3.0-macos-arm64.tar.gz

clickfs v0.2.0

Choose a tag to compare

@github-actions github-actions released this 04 May 02:14

Install

curl -fsSL https://donge.github.io/clickfs/install.sh | sh

Or with cargo:

cargo install clickfs
# or, prebuilt:
cargo binstall clickfs

Assets

Each platform has a .tar.gz containing the clickfs binary, plus a .sha256 checksum file.

platform asset
Linux x86_64 clickfs-v0.2.0-linux-x86_64.tar.gz
Linux aarch64 clickfs-v0.2.0-linux-aarch64.tar.gz
macOS arm64 clickfs-v0.2.0-macos-arm64.tar.gz

clickfs v0.1.1

Choose a tag to compare

@github-actions github-actions released this 04 May 01:54

Install

curl -fsSL https://donge.github.io/clickfs/install.sh | sh

Or with cargo:

cargo install clickfs
# or, prebuilt:
cargo binstall clickfs

Assets

Each platform has a .tar.gz containing the clickfs binary, plus a .sha256 checksum file.

platform asset
Linux x86_64 clickfs-v0.1.1-linux-x86_64.tar.gz
Linux aarch64 clickfs-v0.1.1-linux-aarch64.tar.gz
macOS arm64 clickfs-v0.1.1-macos-arm64.tar.gz

clickfs v0.1.0

Choose a tag to compare

@donge donge released this 04 May 00:42

First public release of clickfs — mount a ClickHouse server as a
read-only POSIX filesystem so the shell is your client:

clickfs mount http://localhost:8123 /mnt/ch
ls /mnt/ch/db/default/
cat /mnt/ch/db/default/events/all.tsv | head -n 100
wc -l /mnt/ch/db/default/events/2024-01-15.tsv
cat /mnt/ch/db/default/events/.schema

What's in v0.1.0

  • Path layout: /db/<database>/<table>/{.schema, all.tsv, <partition_id>.tsv}
  • Streaming reads via async→sync mpsc bridge; strict-sequential per fd
  • FOPEN_DIRECT_IO on data files (no kernel readahead surprises)
  • Read-only by design: every mutating syscall returns EROFS
  • HTTP-only ClickHouse driver with rustls
  • Clean unmount on SIGTERM / SIGINT
  • Cancel via dropped HTTP connection + server max_execution_time
  • SHOW CREATE TABLE in .schema; partition listing from system.parts

Quality

  • 11 unit tests + 26 end-to-end cases (tests/e2e.sh)
  • CI: rustfmt + clippy -D warnings + tests on Linux and macOS
  • 0 compiler warnings, 0 clippy warnings on stable Rust
  • Validated end-to-end against ClickHouse 25.3 on macOS+macFUSE
    (see TEST_REPORT.md)

Install

From source (any platform)

cargo install clickfs

You need libfuse / libfuse3 (Linux) or macFUSE (macOS).

Pre-built Linux binary (x86_64)

Download clickfs-v0.1.0-x86_64-unknown-linux-gnu.tar.gz below.
SHA-256 in SHA256SUMS.

tar xzf clickfs-v0.1.0-x86_64-unknown-linux-gnu.tar.gz
sudo install -m 0755 clickfs /usr/local/bin/clickfs
clickfs --help

Known limitations

  • HTTP only (no native TCP)
  • Read-only (no INSERT)
  • Strict-sequential reads — tail, mmap, random-seek editors will fail with EIO
  • No directory listing cache (one query per ls)
  • Single ClickHouse server (no cluster routing)

See the README and
docs/ for the full design
and the website for a live demo.