{"id":29141204,"url":"https://github.com/ponylang/corral","last_synced_at":"2026-02-27T00:16:57.903Z","repository":{"id":36006843,"uuid":"96358645","full_name":"ponylang/corral","owner":"ponylang","description":"Pony dependency manager tool","archived":false,"fork":false,"pushed_at":"2026-02-22T22:51:33.000Z","size":4988,"stargazers_count":208,"open_issues_count":37,"forks_count":21,"subscribers_count":12,"default_branch":"main","last_synced_at":"2026-02-23T03:45:25.029Z","etag":null,"topics":["dependency-manager","deps","pony-language","ponylang"],"latest_commit_sha":null,"homepage":"https://ponylang.io","language":"Pony","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ponylang.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"open_collective":"ponyc"}},"created_at":"2017-07-05T20:29:05.000Z","updated_at":"2026-02-22T22:51:36.000Z","dependencies_parsed_at":"2024-03-16T15:32:30.680Z","dependency_job_id":"b1b09143-7eb9-48b0-ad33-980e0b8866e6","html_url":"https://github.com/ponylang/corral","commit_stats":{"total_commits":452,"total_committers":18,"mean_commits":25.11111111111111,"dds":0.5331858407079646,"last_synced_commit":"7147cfb5208a025b3e9762a5ff833ab24084e95a"},"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/ponylang/corral","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponylang%2Fcorral","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponylang%2Fcorral/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponylang%2Fcorral/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponylang%2Fcorral/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ponylang","download_url":"https://codeload.github.com/ponylang/corral/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponylang%2Fcorral/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29878284,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T23:51:21.483Z","status":"ssl_error","status_checked_at":"2026-02-26T23:50:46.793Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dependency-manager","deps","pony-language","ponylang"],"created_at":"2025-06-30T18:05:42.431Z","updated_at":"2026-02-27T00:16:57.858Z","avatar_url":"https://github.com/ponylang.png","language":"Pony","funding_links":["https://opencollective.com/ponyc"],"categories":[],"sub_categories":[],"readme":"# Corral\n\n[Pony](https://ponylang.io) dependency manager\n\n## Status\n\nCorral is beta level software.\n\n## About Corral\n\nCorral is a dependency management tool for [Pony](https://www.ponylang.io). Corral:\n\n* Provides extensibility for VCS and Commands.\n* Supports semver version constraints on dependencies.\n* Supports transitive dependencies.\n* Supports revision locking on dependencies using a lock.json file.\n* Uses a distinct shared VCS repo pool from per-project dependency workspace tree.\n* Uses the Pony process package for running external tools like Git and ponyc.\n\n### Design\n\nSee [Corral Design](doc/design.md) for more details about the design of Corral. Ongoing questions and notes for future work can be found in [Questions / Notes](doc/questions_notes.md)\n\n### Background\n\nCheck out [Pony Package Dependency Management](doc/package_dependency_management.md) for a discussion of the research and requirements work behind Corral.\n\n## Installation\n\nPre-built binaries of Corral are available for Linux, MacOS, and Windows. To install on any of these platforms, use [ponyup](https://github.com/ponylang/ponyup). For any other platform, you'll need to be build from source.\n\nThe following command is assuming that `ponyup`, our toolchain multiplexer, is already installed on your machine and is locatable by the name `ponyup`. If you don't have ponyup installed, please follow the [ponyup installation instructions](https://github.com/ponylang/ponyup#installing-ponyup).\n\n```bash\nponyup update corral release\n```\n\n## Building From Source\n\nSee [BUILD.md](BUILD.md)\n\n## Getting started using Corral\n\nAfter 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.\n\n### Create a project\n\nMake an empty folder and switch to this directory. This will be our example project to use Corral\n\n```bash\nmkdir myproject\ncd myproject\n```\n\n### Initialize Corral\n\nIt will create `corral.json` and `lock.json` files. At this moment they won't have much information since you haven't added any dependencies yet.\n\n```bash\ncorral init\n```\n\n### Add a dependency\n\nThis is the way to tell Corral that your project depends on this and you want to include it when building your project.\n\n```bash\ncorral add github.com/ponylang/valbytes.git\n```\n\n### Use a dependency\n\nCreate a file `main.pony` with following code.\n\n```pony\nuse \"valbytes\"\n\nactor Main\n  new create(env: Env) =\u003e\n    var buf: ByteArrays = ByteArrays\n    buf = buf + \"!!\" + \"Hello,\" + \" \" + \"World!\"\n    let greetings = buf.drop(2).string()\n    env.out.print(greetings)\n```\n\n### Get dependencies\n\nThe example Pony code is using `ByteArrays` type which is defined in the dependency which you have just added. Pony needs to have the source code of `ByteArrays` type to compile successfully. When `corral update` is run, Corral retrieves the source and makes it available when compiling the source code.\n\n```bash\ncorral update\n```\n\n### Build the project\n\nCorral will now use this information to build the project. The command below act as a wrapper for `ponyc`\n\n```bash\ncorral run -- ponyc\n```\n\nIf there are no errors generated then an executable `myproject` will be created in the same folder.\n\nYou will also notice that there are two new folders `_corral` and `_repos` in your project folder now. They were generated by the `corral update` command. Please make sure to include them in your `.gitignore` file as there is no need to keep them in a versioning system since they are maintained by Corral itself.\n\n## Documentation\n\nSee [DOCS.md](DOCS.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fponylang%2Fcorral","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fponylang%2Fcorral","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fponylang%2Fcorral/lists"}