Dependency manager for the Crystal language.
Crystal applications and libraries are expected to have a
at their root looking like this:
version: ~> 0.3.1
When libraries are installed from Git repositories, the repository is expected
to have version tags following a semver-like format,
prefixed with a
Please see the SPEC for more details about the
Shards is usually distributed with Crystal itself (e.g. Homebrew and Debian
packages). Alternatively, a
shards package may be available for your system.
You can download a source tarball from the same page (or clone the repository)
make release=1and copy
bin/shards into your
You are now ready to create a
shard.yml for your projects (see details in
SPEC). You can type
shards init to have an example
shard.yml file created for your project.
shards install to install your dependencies, which will lock your
dependencies into a
shard.lock file. You should check both
shard.lock into version control, so further
shards install will always
install locked versions, achieving reproducible installations across computers.
shards --help to list other commands with their options.
These requirements are only necessary for compiling Shards.
Please refer to https://crystal-lang.org/install/ for instructions for your operating system.
molinilloneeds to be in the Crystal path. It is available at https://github.com/crystal-lang/crystal-molinillo You can install it either with a pre-existing
shards install) or just check out the repository at
On Debian/Ubuntu Linux you may install the
On Mac OS X you may install it using homebrew with
brew install libyamlthen make sure to have
LIBRARY_PATHenvironment variable (eg:
export LIBRARY_PATH="/usr/local/lib:$LIBRARY_PATH"). Please adjust the path per your Homebrew installation.
Needed for building manpages.
It is strongly recommended to use
make for building shards and developing it.
Makefile contains recipes for compiling and testing. Building
make also ensures the source dependency
molinillo is installed. You don't
need to take care of this yourself.
make bin/shards to build the binary.
release=1for a release build (applies optimizations)
static=1for static linking (only works with musl-libc)
debug=1for full symbolic debug info
make install to install the binary. Target path can be adjusted with
make test to run the test suites:
make test_unitruns unit tests (
make test_integrationruns integration tests (
make docs to build the manpages.
Licensed under the Apache License, Version 2.0. See LICENSE for details.