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.
- Lightweight, written on C/C++
- Cross-platform. Prebuilds packages for popular systems (like Windows, Linux, macOS), just download and ready to use. (Recommended add to path var)
- Publishing your own package immediately with "cpk publish" command inside project directory. Package ready to be used on other side right after with "cpk install". (no intermediate moderation etc...)
- Everyone can publish the own package library or binary with one simple command.
- Keep installation & popularity statistic to recommend most popular packages and libs (can be yours).
- Using external effective build managers: like cmake, mingw32.
- Easy to use configuration for packages: json based package config (very similar to npm).
- Use the builded packages and libraries in your project with simple
cpk command
alias. For example:cpk cmake -G Ninja ../
will apply all needed libraries in your project. - Use GPT to search packages by description and your needes without actual knowing of package name.
- Generate example code using GPT to any of the libraries right after library installation.
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 package@1.0 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]
- likecpk cmake -G Ninja ../
to build project used installed libraries-h
- Help-v
- version of CPK
mkdir 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
- No python and pip manager is required to start work with. The cpk in binary and source form on C/C++
- No python required to create package, configuration of packages is with simple json syntax declared in cpk.json
- Publishing package mechanism is easy
- Open-source backend as part of cpk
- Neural networks features (like search/install packages without knowing package real name or generate example library code)
- Don't need to build cpk like vcpkg, cpk binaries is also presented for most popular OS's. Just download archive with cpk binary and add it to path
- Easy to start work with from the box (easy installing and publishing)
- To start usage the package add "cpk" before cpk command is enought "cpk cmake ../" will take care for dependencies in your project.
- Open-source backend as part of cpk
- Neural networks features (like search/install packages without knowing package real name or generate example library code)