duckfetch

Crates.ioduckfetch
lib.rsduckfetch
version0.5.1
created_at2024-09-26 11:53:33.324418+00
updated_at2025-08-19 17:14:58.762729+00
descriptionA CLI tool for managing DuckDB installations, enabling users to easily list available versions and install specific ones.
homepagehttps://github.com/pmassicotte/duckfetch
repositoryhttps://github.com/pmassicotte/duckfetch
max_upload_size
id1387413
size335,953
Philippe Massicotte (PMassicotte)

documentation

https://docs.rs/duckfetch

README

duckfetch: a DuckDB manager for Linux (maybe Windows and MacOS)

Crates.io License Build Status Build Status Test Linux Installation Test macOS Installation Test Windows Installation

A simple Rust application to manage DuckDB installations, allowing users to list available versions and install specific versions easily.

Table of Contents

Demo

Demo

Features

  • List available DuckDB versions from GitHub releases with duckfetch list.
  • Install a specific DuckDB version with duckfetch install.
  • Update to the latest version with duckfetch update.
  • Generate auto-completion scripts for your shell with duckfetch completions.

Requirements

  • Rust (version 1.60 or later)
  • Internet access to download DuckDB releases.

Installation

You can install duckfetch using cargo, the Rust package manager, or by using the provided shell scripts.

Cargo

To install it from crates.io:

cargo install duckfetch

Or the development version:

cargo install --git https://github.com/pmassicotte/duckfetch

Shell scripts

Linux and MacOS:

curl --proto '=https' --tlsv1.2 -LsSf $(curl -s https://api.github.com/repos/pmassicotte/duckfetch/releases/latest | grep -o 'https://github.com/pmassicotte/duckfetch/releases/download/[^"]*-installer.sh') | sh

Windows:

powershell -ExecutionPolicy Bypass -c "$url = (Invoke-RestMethod -Uri 'https://api.github.com/repos/pmassicotte/duckfetch/releases/latest').assets | Where-Object { $_.name -eq 'duckfetch-installer.ps1' } | Select-Object -ExpandProperty browser_download_url; irm $url | iex"

Usage

Check the currently installed DuckDB version

duckfetch check

List available DuckDB versions

duckfetch list

Install DuckDB

This command will print the available versions and ask the user to select one to install.

duckfetch install

Open the change log of the latest DuckDB version

This will open the GitHub release page for the latest DuckDB version in your default browser.

duckfetch changelog

Help

For more information, use the --help flag:

duckfetch install --help

Autocompletion

To enable autocompletion, you can use the completions subcommand to generate the completion script for your shell. For example, to enable completions for the zsh shell:

duckfetch completions zsh >~/.zfunc/_duckfetch

Then, add the following line to your .zshrc file:

fpath+=~/.zfunc
autoload -Uz compinit
compinit -i

Troubleshooting

GitHub API Rate Limits

If you encounter GitHub API rate limit errors (especially in CI/CD or with heavy usage), you can set a GITHUB_TOKEN environment variable to increase your rate limit:

export GITHUB_TOKEN=your_github_token_here
duckfetch update

To create a GitHub token:

  1. Go to GitHub Settings → Developer settings → Personal access tokens
  2. Generate a new token (no special permissions needed for public repositories)
  3. Set the token as an environment variable

Other related projects

Commit count: 125

cargo fmt