FREEDOM251

Freedom251 › Package Managers

Shards

Free plan LinuxMacWindows

Visit Shards Alternatives

Shards's own site

What Shards is

Shards is a free dependency manager for Crystal applications and libraries, running on Linux, macOS, and Windows. Projects describe metadata and dependencies in a shard.yml file at the repository root. Shards resolves dependencies from local paths and Git repositories, including GitHub, GitLab, Bitbucket, and Codeberg, with selections based on version requirements, tags, branches, or commits. Git-hosted libraries are expected to use semver-like tags beginning with v. The shards install command installs dependencies and records their versions in shard.lock, allowing later installations to reuse locked versions. Other documented commands include build, check, init, list, prune, update, and version. Build installs dependencies before passing options to crystal build. Development dependencies apply only to the project itself. A shard.override.yml file can replace sources or version restrictions. Shards has no central registry, is generally distributed with Crystal, and its public repository uses the Apache-2.0 license.

Who it suits

Shards suits Crystal developers maintaining applications or libraries with declared dependencies. It is useful when projects need dependency locking, Git-based sources, and reproducible installs across computers.

What it does well

  • Free plan with no listed charge
  • Runs on Linux, macOS, and Windows
  • Supports Git and local dependency sources
  • Lockfile records selected dependency versions
  • Includes dependency override configuration

What to know first

  • Requires Crystal and libyaml to compile
  • Git libraries are expected to use v-prefixed tags
  • No central package registry

Verdict

Shards provides Crystal projects with dependency resolution, installation, locking, and build-related commands across three desktop platforms. Its decentralized model and Git-oriented sources fit teams managing dependencies directly in project files and repositories.

Facts from Shards's own pages

Authorship
The shard.yml documentation credits Julien Portalier and the Crystal project as authors. · github.com, 11 Oct 2026
Build behavior
The build command ensures dependencies are installed and delegates build options to crystal build. · crystal-lang.org, 11 Oct 2026
Build requirements
The repository lists Crystal and libyaml as requirements for compiling Shards. · github.com, 11 Oct 2026
Commands
The documented commands include build, check, init, install, list, prune, update, and version. · crystal-lang.org, 11 Oct 2026
Dependency installation
The `shards install` command installs dependencies and records them in shard.lock for reproducible installations across computers. · github.com, 11 Oct 2026
Dependency resolution
Yes · github.com, 21 Sept 2026
Dependency sources
The README shows dependencies fetched from Git repositories, including GitHub repositories. · github.com, 11 Oct 2026
Development dependencies
Development dependencies are installed for the project itself and are not installed when its library is used as another project's dependency. · github.com, 11 Oct 2026
Discovery model
The Crystal community page describes Shards as a decentralized dependency system with no central registry. · crystal-lang.org, 11 Oct 2026
Distribution
Shards is usually distributed with Crystal, and a separate shards package may be available for a user's system. · github.com, 11 Oct 2026
Free plan
Yes · github.com, 21 Sept 2026
Install options
Shards is usually distributed with Crystal, including through Homebrew and Debian packages; source tarballs can also be built and installed. · github.com, 11 Oct 2026
Intended users
The project README describes its use for Crystal applications and libraries. · github.com, 11 Oct 2026
License
The repository states that Shards is licensed under Apache License, Version 2.0. · github.com, 11 Oct 2026
Lockfile
shards install writes locked dependency versions to shard.lock so subsequent installs can use the same versions across computers. · github.com, 11 Oct 2026
Lockfile support
Yes · github.com, 21 Sept 2026
Overrides
A shard.override.yml file can override dependency sources and version restrictions, and its location can be configured with SHARDS_OVERRIDE. · crystal-lang.org, 11 Oct 2026
Package formats
Crystal shards defined in shard.yml · github.com, 21 Sept 2026
Platform notes
The installation instructions mention Debian or Ubuntu Linux and Mac OS X, and say a shards package may be available for a user's system. · github.com, 11 Oct 2026
Platforms
The Crystal install page lists Shards in package instructions for Linux, macOS, Windows tooling, FreeBSD, and OpenBSD. · crystal-lang.org, 11 Oct 2026
Postinstall scripts
A shard can define a postinstall shell command that runs when the dependency is installed or upgraded. · github.com, 11 Oct 2026
Project files
Crystal applications and libraries are expected to have a shard.yml file at their root to describe dependencies. · github.com, 11 Oct 2026
Project type
The GitHub repository is public and licensed under Apache-2.0. · github.com, 11 Oct 2026
Project users
Crystal applications and libraries use a shard.yml file to describe project metadata and dependencies. · github.com, 11 Oct 2026

Where Shards stands on Freedom251

Look at these too