Light and fast package manager on C/C++ for C/C++/Python/Rust/Js packages
MIT License
https://cpkpkg.com - official repository site (search, download, information about packages)
Very light and easy and fast native package manager to install C/C++ (priority), JS, Python, Rust packages and compile sources when it needed. Same package can be in muitple form for different languages.
Main purpose of this package manager to have simple C/C++ manager with possibility to post packages like npm, and also provide functionality to support same algorithms and code base for different programming languages, so if someone wanna quicksort package in their project on Python - they will get it, and if need the same one for C++ he will get it with simillar command.
CPK has possibility to search and install packages using GPT neural network by given description, generate example code for installed libraries using cpk nn
command. So you can not only install libraries, but find needed and use them immediately.
Cross-platform. Implemented on C/C++ and provided for Linux, Mac OS, Windows arch.
cpk command
alias. For example: cpk cmake -G Ninja ../
will apply all needed libraries in your project.Download last available version on CPK at download page. CPK is console based utility, so extact archive and add CPK utility to PATH of the system.
cpk install package
Install 2 packages package=1.0 version and package2 latest version
cpk install [email protected] package2
Publish your own package (inside directory of project):
cpk publish
After command execution the package must become published/updated on https://cpkpkg.com
List of available packages for install:
cpk packages
Update all packages:
cpk update
CPK package manager created to distribute any kind of open source packages, but we want to guarantee that any package can be used in commertial software in any form of use. So we recomend to use licenses like BSD or MIT if it possible.
to publish your package you can create cpk.json with following very basic config with package name and list of dependencies:
{
"package": "example",
"dependencies": {
"zlib": ""
}
}
and use
cpk publish
command to publish you own package
https://cpkpkg.com/YOUR_PACKAGE - After publishing the package, it will displayed on reposity site.
For example you installed zlib library that your project required
cpk install zlib
and you want to use it inside your project. You just need to execute cmake command for your project with cpk alias, like this:
# Insead of using:
# cmake ../
# use follow:
cpk cmake ../
The package will be founded in your project:
cmake_minimum_required(VERSION 3.1)
project(zlib-test)
# The library will be founded with cpk
find_package(ZLIB REQUIRED)
It is also possible to execute with gcc, clang and other build tools (not only cmake types of project).
CPK will capture cmake command arguments and will add it own libraries and include pathes to cmake execution:
In this example it's reaply arguments using sysroot with generated cmake -DCMAKE_PREFIX_PATH argument.
You can find any needed packages without knowing it names.
Use:
cpk nn search Library to extract zip archives
You will suggested to install libzip packages or other alternative.
Available commands and options:
install PACKAGE
- Install packagepublish
- Publish current packageupdate
- Update tree of packagespackages
- List of available packagesinfo PACKAGE
- Recive information about package (like descriptions, downloads, version and so on)nn search [description]
- use to find any package/library accroding any description using ChatGPT. Like: "library to open and extract zip files". It will suggess to install libzip package.[build command]
- like cpk cmake -G Ninja ../
to build project used installed libraries-h
- Help-v
- version of CPKmkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ../
make -j8
We recomend to build cpk using ninja + mingw:
mkdir build
cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ../
ninja