Awesome
<p align="center"> <img src="www/logo-medium.png?raw=true" alt="Buckaroo" /> </p>Buckaroo
The decentralized package manager for C++ and friends.
Why Buckaroo?
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/boost-thread@branch=master
# Run your code
$ buck run :my-app
We have an FAQ.
Package Registries
Pull dependencies directly from GitHub, BitBucket, GitLab, hosted Git and HTTP. How?
<p align="center"> <img src="www/registries.png?raw=true" alt="Package Registries" width="500px" /> </p>IDE Integrations
Support for major IDEs and tools. Integration guides can be found in the docs.
<p align="center"> <img src="www/ides.png?raw=true" alt="IDE Integrations" width="500px" /> </p>Features
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
Get Started
Please refer to the Wiki for installation instructions! ✌️
Quick Install
Buckaroo is shipped as a self-contained executable, so all you need to do is download the bundle from the releases page.
Linux
$ wget https://github.com/LoopPerfect/buckaroo/releases/download/v2.2.0/buckaroo-linux -O buckaroo
$ chmod +x ./buckaroo
$ ./buckaroo
macOS
With Homebrew:
$ 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
Windows
You can use the Chocolatey package:
choco install buckaroo
Or, download buckaroo.exe from the releases page.
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.
<p align="center"> <img src="www/how-buckaroo-works.png?raw=true" alt="Buckaroo" /> </p>Head over to the Wiki for more detailed information.
Attribution
SVG graphics in diagrams are made by Freepik from www.flaticon.com and are licensed by Creative Commons BY 3.0.