7827239593
On non-Windows platforms, there is no standard way to get the hash of an item -- before this PR, what we did was check for the existence of a few common utility names (shasum, sha1, sha256, sha512), and then call that utility on a file we created containing the contents we wish to hash. This PR adds internal hashers for sha1, sha256, and sha512, and standardizes the interface to allow anyone to implement hashers in the future. These hashers are not extremely optimized, so it's likely that in the future we could get more optimized, but for now we just call out to BCryptHasher on Windows, since it's standard and easy to use (and about 2x faster for sha1 and sha256, and 1.5x faster for sha512). However, they are reasonably fast for being unoptimized. I attempted a few minor optimizations, which actually made the code slower! So as of right now, it's implemented as just a basic conversion of the code on Wikipedia to C++. I have tested these on the standard NIST test vectors (and those test vectors are located in vcpkg-test/hash.cpp). |
||
---|---|---|
.github/ISSUE_TEMPLATE | ||
docs | ||
ports | ||
scripts | ||
toolsrc | ||
triplets | ||
.gitattributes | ||
.gitignore | ||
.vcpkg-root | ||
bootstrap-vcpkg.bat | ||
bootstrap-vcpkg.sh | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
LICENSE.txt | ||
NOTICE.txt | ||
README.md |
Vcpkg
Overview
Vcpkg helps you manage C and C++ libraries on Windows, Linux and MacOS. This tool and ecosystem are constantly evolving; your involvement is vital to its success!
For short description of available commands, run vcpkg help
.
Quick Start
Prerequisites:
- Windows 10, 8.1, 7, Linux, or MacOS
- Visual Studio 2015 Update 3 or newer (on Windows)
- Git
- Optional: CMake 3.12.4
To get started:
> git clone https://github.com/Microsoft/vcpkg.git
> cd vcpkg
PS> .\bootstrap-vcpkg.bat
Linux:~/$ ./bootstrap-vcpkg.sh
Then, to hook up user-wide integration, run (note: requires admin on first use)
PS> .\vcpkg integrate install
Linux:~/$ ./vcpkg integrate install
Install any packages with
PS> .\vcpkg install sdl2 curl
Linux:~/$ ./vcpkg install sdl2 curl
The best way to use installed libraries with CMake is via the toolchain file scripts\buildsystems\vcpkg.cmake
. To use this file, you simply need to add it onto your CMake command line as -DCMAKE_TOOLCHAIN_FILE=[vcpkg root]\scripts\buildsystems\vcpkg.cmake
.
In Visual Studio, you can create a New Project (or open an existing one). All installed libraries are immediately ready to be #include
'd and used in your project without additional configuration.
For more information, see our using a package example for the specifics. If your library is not present in vcpkg catalog, you can open an issue on the GitHub repo where the dev team and the community can see it and potentially create the port file for this library.
Additional notes on macOS and Linux support can be found in the official announcement.
Tab-Completion / Auto-Completion
vcpkg
supports auto-completion of commands, package names, options etc in Powershell and bash. To enable tab-completion, use one of the following:
PS> .\vcpkg integrate powershell
Linux:~/$ ./vcpkg integrate bash
and restart your console.
Examples
See the documentation for specific walkthroughs, including installing and using a package, adding a new package from a zipfile, and adding a new package from a GitHub repo.
Our docs are now also available online at ReadTheDocs: https://vcpkg.readthedocs.io/!
See a 4 minute video demo.
Contributing
Vcpkg is built with your contributions. Here are some ways you can contribute:
- Submit Issues in vcpkg or existing packages
- Submit Fixes and New Packages
Please refer to our Contribution guidelines for more details.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
License
Code licensed under the MIT License.