FREEDOM251

Freedom251 › Package Managers

Nimble

Free plan LinuxMacWindows

Visit Nimble Alternatives

Nimble's own site

What Nimble is

Nimble is the default package manager for the Nim programming language and is free to use. It searches for packages, installs dependencies, creates package scaffolds, and uploads packages to the official package list. Packages can come from local directories, Git repositories, or Mercurial repositories, and installation can target versions, branches, tags, or commit hashes. Nimble includes build, run, test, and check commands, while .nimble files can define custom tasks and hooks in Nim code. The nimble init wizard asks for package type, version, description, license, and minimum Nim version. Nimble is bundled with Nim and has manual installation guidance for POSIX systems and Windows. It can manage Nim versions according to project requirements. A nimble.lock file pins dependency versions and verifies recorded checksums; the documented checksum type is SHA-1. Package search supports name fragments or tags, and the Nimble Directory is another discovery option.

Who it suits

Nimble suits Nim developers managing dependencies, package versions, project scaffolds, and publishing. It runs on Windows, macOS, and Linux and supports library, binary, and hybrid package formats.

What it does well

  • Free package manager for Nim
  • Supports local, Git, and Mercurial sources
  • Lockfile pins exact dependency versions
  • Includes build, run, test, and check commands
  • Runs on Windows, macOS, and Linux

What to know first

  • Package lists do not update automatically
  • GitHub downloads require Git 2.22 or newer
  • Lockfile checksums currently support SHA-1

Verdict

Nimble covers the main package workflow for Nim, from discovery and installation through development, testing, locking, and publication. Manual refreshes and external Git or Mercurial requirements are important operational details.

Facts from Nimble's own pages

Build and test
Nimble provides commands including build, run, test, and check for working with packages. · nim-lang.github.io, 11 Oct 2026
Custom tasks
A package’s .nimble file can define custom tasks and pre- or post-command hooks using Nim code. · nim-lang.github.io, 11 Oct 2026
Dependency locking
The nimble.lock file pins dependency versions and checks downloaded packages against recorded checksums; the guide says only SHA-1 checksums are currently supported. · nim-lang.github.io, 11 Oct 2026
Dependency resolution
Yes · nim-lang.github.io, 21 Sept 2026
Dependency sources
Nimble supports packages from local directories, Git repositories, and Mercurial repositories. · nim-lang.github.io, 11 Oct 2026
Development workflow
The nimble develop command clones packages and records development-mode dependencies for a project. · nim-lang.github.io, 11 Oct 2026
Free plan
Yes · nim-lang.github.io, 21 Sept 2026
Installation
Nimble is bundled with Nim, and the guide provides manual installation instructions for POSIX systems and Windows. · nim-lang.github.io, 11 Oct 2026
Integrations
Nimble can install packages hosted on GitHub when Git is installed and available on PATH; it also supports Mercurial repositories. · nim-lang.github.io, 11 Oct 2026
Lock files
The nimble.lock file pins exact dependency versions so developers can use the same versions across a project. · nim-lang.github.io, 11 Oct 2026
Lockfile support
Yes · nim-lang.github.io, 21 Sept 2026
Notable limit
The guide states that package-list updates are not automatic and users must run nimble refresh to update the local list. · nim-lang.github.io, 11 Oct 2026
Package creation
The nimble init wizard creates a package scaffold and prompts for details such as package type, version, description, license, and minimum Nim version. · nim-lang.github.io, 11 Oct 2026
Package discovery
The nimble search command filters known packages by name fragments or tags, and the guide also points to the Nimble Directory website as a search alternative. · nim-lang.github.io, 11 Oct 2026
Package formats
library,binary,hybrid · nim-lang.github.io, 21 Sept 2026
Package installation
The install command downloads a package and installs its Nimble dependencies as well. · nim-lang.github.io, 11 Oct 2026
Package list updates
The guide says there is no automatic package-list update mechanism and users must run nimble refresh to update their local list. · nim-lang.github.io, 11 Oct 2026
Package management
It can search for Nim packages, install dependencies, create packages, and upload them to the official package list. · nim-lang.github.io, 11 Oct 2026
Package sources
Nimble supports packages from local directories, Git repositories, and Mercurial repositories. · nim-lang.github.io, 11 Oct 2026
Purpose
Nimble is the default package manager for the Nim programming language. · nim-lang.github.io, 11 Oct 2026
Repository requirements
Downloading packages from GitHub requires Git installed and available on PATH; Mercurial repositories likewise require Mercurial. · nim-lang.github.io, 11 Oct 2026
Support
The troubleshooting guide says to report a bug if Nimble cannot find the Nim standard library. · nim-lang.github.io, 11 Oct 2026
Supported Git version
The guide states that the minimum supported Git version is 2.22. · nim-lang.github.io, 11 Oct 2026
Supported platforms
Windows,macOS,Linux · nim-lang.github.io, 21 Sept 2026

Where Nimble stands on Freedom251

Look at these too