Need help with corral?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

166 Stars 16 Forks BSD 2-Clause "Simplified" License 291 Commits 41 Opened issues


:horse: Pony dependency manager tool

Services available


Need anything else?

Contributors list


Pony dependency manager


Corral is beta level software.

About Corral

Corral is a dependency management tool for Pony. Corral:

  • Provides extensibility for VCS and Commands.
  • Supports semver version constraints on dependencies.
  • Supports transitive dependencies.
  • Supports revision locking on dependencies using a lock.json file.
  • Uses a distinct shared VCS repo pool from per-project dependency workspace tree.
  • Uses the Pony process package for running external tools like Git and ponyc.


See Corral Design for more details about the design of Corral. Ongoing questions and notes for future work can be found in Questions / Notes


Check out Pony Package Dependency Management for a discussion of the research and requirements work behind Corral.


Use ponyup to install corral.

The following command is assuming that

, our toolchain multiplexer, is already installed on your machine and is available in your $PATH environment variable. If you don't have ponyup installed, please follow the ponyup installation instructions.
ponyup update corral release

Building From Source


Getting started using Corral

After installation, add Corral's current path to $PATH environment variable if you haven't already and follow these steps to create your first project using Corral.

Create a project

Make an empty folder and switch to this directory. This will be our example project to use Corral

mkdir myproject
cd myproject

Initialize Corral

It will create

files. At this moment they won't have much information since you haven't added any dependencies yet.
corral init

Add a dependency

This is the way to tell Corral that your project depends on this and you want to include it when building your project.

corral add

Use a dependency

Create a file

with following code.
use "valbytes"

actor Main new create(env: Env) => var buf: ByteArrays = ByteArrays buf = buf + "!!" + "Hello," + " " + "World!" let greetings = buf.drop(2).string() env.out.print(greetings)

Get dependencies

The example Pony code is using

type which is defined in the dependency which you have just added. Pony needs to have the source code of
type to compile successfully. When
corral update
is run, Corral retrieves the source and makes it available when compiling the source code.
corral update

Build the project

Corral will now use this information to build the project. The command below act as a wrapper for

corral run -- ponyc

If there are no errors generated then an executable

will be created in the same folder.

You will also notice that there are two new folders

in your project folder now. They were generated by the
corral update
command. Please make sure to include them in your
file as there is no need to keep them in a versioning system since they are maintained by Corral itself.



We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.