The decentralized package manager for C++ and friends.
Package managers like Yarn and Cargo have shown how productive developers can be when they can easily integrate a large ecosystem of projects. Buckaroo fills this gap for C++.
The Buckaroo workflow looks like this:
# Create your project file $ buckaroo init # Install dependencies $ buckaroo add github.com/buckaroo-pm/[email protected]=master # Run your code $ buck run :my-app
We have an FAQ.
Pull dependencies directly from GitHub, BitBucket, GitLab, hosted Git and HTTP. How?
Support for major IDEs and tools. Integration guides can be found in the docs.
C++ has unique requirements, so Buckaroo is a highly sophisticated piece of software.
- Pull dependencies directly from GitHub, BitBucket, GitLab, hosted Git and HTTP
- Fully reproducible builds and dependency resolution
- Completely decentralized - there is no central server or publishing process
- Allows any build configuration (even on a package-by-package basis)
- Private and public dependencies to avoid "dependency hell"
- Multiple libraries per package, so tools like Lerna are unnecessary
- Pull individual packages out of mono-repos
- Full support for semantic versioning (but only when you want it!)
- Live at head! Move fast by depending directly on Git branches, but in a controlled way
- Blazing fast resolution using clever heuristics
- Version equivalency checks to reduce dependency conflicts
- TOML configuration files for convenient editing by computers and humans
- Works offline (with a populated cache)
- Enable Upgrade Bot to keep everything up-to-date with a single click
Buckaroo is shipped as a self-contained executable, so all you need to do is download the bundle from the releases page.
$ wget https://github.com/LoopPerfect/buckaroo/releases/download/v2.2.0/buckaroo-linux -O buckaroo $ chmod +x ./buckaroo $ ./buckaroo
$ brew install loopperfect/lp/buckaroo
Or without Homebrew:
$ wget https://github.com/LoopPerfect/buckaroo/releases/download/v2.2.0/buckaroo-macos -O buckaroo $ chmod +x ./buckaroo $ ./buckaroo
You can use the Chocolatey package:
choco install buckaroo
How Buckaroo Works
The Buckaroo model is very simple. Packages live in source-control, and a manifest file is used to describe dependencies. This points to further manifests to create a dependency graph. Buckaroo works directly over Git and HTTP.
Head over to the Wiki for more detailed information.