Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Nix
  3. nurl

nurl

MPL-2.0Rustv0.4.0

A CLI tool that automatically generates Nix fetcher calls from repository URLs, simplifying package definitions.

Visit WebsiteGitHubGitHub
754 stars12 forks0 contributors

What is nurl?

nurl is a command-line tool that automatically generates Nix fetcher expressions from repository URLs. It solves the problem of manually writing and maintaining boilerplate Nix code for fetching dependencies by inferring the correct fetcher, retrieving the hash, and producing a complete expression.

Target Audience

Nix users and package maintainers who need to create or update Nix package definitions that fetch sources from various repositories and package registries.

Value Proposition

Developers choose nurl because it automates a tedious part of Nix packaging, reduces errors in hash generation, supports a wide range of fetchers, and integrates well with tools like nix-init for broader package generation workflows.

Overview

Generate Nix fetcher calls from URLs [maintainer=@figsoda]

Use Cases

Best For

  • Generating fetchFromGitHub calls for GitHub repositories
  • Creating Nix expressions for crates from crates.io
  • Fetching Python packages from PyPI in Nix
  • Automating fetcher calls for GitLab, Bitbucket, or SourceHut repos
  • Reducing boilerplate when writing Nix package definitions
  • Quickly testing fetcher expressions without manual hash calculation

Not Ideal For

  • Projects requiring full Nix package definitions with build phases and dependencies, as nurl only generates fetcher calls
  • Users who need fine-grained control over file attributes or advanced configuration options like those in nix-prefetch
  • Environments with restricted or no network access, since nurl must fetch hashes online
  • Non-standard repository URLs where automatic fetcher inference might fail, necessitating manual overrides

Pros & Cons

Pros

Automatic Fetcher Inference

Detects the correct Nix fetcher from the URL, such as fetchFromGitHub for GitHub repos, reducing manual errors. The README lists 18+ supported fetchers including fetchCrate and fetchPypi.

Integrated Hash Generation

Fetches and includes the content hash in the output expression, ensuring reproducibility. It uses faster alternatives to Fixed-Output Derivations when possible for improved performance.

Customizable Output Options

Offers JSON output, custom indentation, and argument overwrites, as shown with flags like --json and --overwrite. This allows seamless integration into various packaging workflows.

Wide Fetcher Support

Supports 18+ fetchers from platforms like GitHub, GitLab, PyPI, and crates.io, making it versatile for diverse package sources. The --list-fetchers option enumerates all available fetchers.

Cons

Limited Configuration Depth

Compared to nix-prefetch, nurl is less configurable and lacks support for file attributes, as noted in the README comparison, which may hinder advanced use cases.

Network Dependency for Hashes

Requires internet access to fetch hashes, making it unsuitable for offline environments or private repos without authentication workarounds.

Inference Reliability Issues

Automatic fetcher inference can fail for obscure or custom URLs, forcing users to manually specify fetchers with --fetcher, adding complexity.

Frequently Asked Questions

Quick Stats

Stars754
Forks12
Contributors0
Open Issues14
Last commit3 days ago
CreatedSince 2022

Tags

#mercurial#developer-tools#cli-tool#gitlab#git#prefetch#nix#package-management#fetch#nixpkgs#rust#bitbucket#hg#github#reproducible-builds

Built With

R
Rust

Links & Resources

Website

Included in

Rust56.6kNix5.0k
Auto-fetched 28 minutes ago

Related Projects

RustDeskRustDesk

An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.

Stars117,161
Forks17,754
Last commit2 days ago
RuViewRuView

π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.

Stars75,917
Forks10,157
Last commit3 hours ago
vaultwardenvaultwarden

Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs

Stars63,095
Forks2,957
Last commit24 days ago
WarpWarp

Warp is an agentic development environment, born out of the terminal.

Stars62,603
Forks5,131
Last commit1 hour ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub