{"id":15448857,"url":"https://github.com/degitx/cpk","last_synced_at":"2025-04-19T21:37:33.775Z","repository":{"id":42399296,"uuid":"500594039","full_name":"DEgITx/cpk","owner":"DEgITx","description":"Light and fast package manager on C/C++ for C/C++/Python/Rust/Js packages","archived":false,"fork":false,"pushed_at":"2024-01-28T03:39:20.000Z","size":4596,"stargazers_count":19,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-29T13:35:19.972Z","etag":null,"topics":["c","chatgpt","cpk","cpp","cross-platform","crossplatform","javascript","package-manager","python","rust"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DEgITx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":"DEgITx"}},"created_at":"2022-06-06T21:08:37.000Z","updated_at":"2025-02-17T06:45:36.000Z","dependencies_parsed_at":"2024-01-28T04:20:17.189Z","dependency_job_id":"d8a32522-98a3-4748-b939-09503fd5424f","html_url":"https://github.com/DEgITx/cpk","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DEgITx%2Fcpk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DEgITx%2Fcpk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DEgITx%2Fcpk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DEgITx%2Fcpk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DEgITx","download_url":"https://codeload.github.com/DEgITx/cpk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249811492,"owners_count":21328810,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","chatgpt","cpk","cpp","cross-platform","crossplatform","javascript","package-manager","python","rust"],"created_at":"2024-10-01T20:40:29.405Z","updated_at":"2025-04-19T21:37:33.753Z","avatar_url":"https://github.com/DEgITx.png","language":"C++","readme":"# \u003cimg src=\"https://raw.githubusercontent.com/DEgITx/cpk/master/resources/cpk_logo.png\" width=\"60px\" align=\"center\" alt=\"Cpk Package manager\"\u003e CPK Package Manager\n\n\u003cp align=\"center\"\u003e\u003ca href=\"https://github.com/DEgiTx/cpk\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/DEgITx/cpk/master/resources/cpk.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/DEgITx/cpk/releases\"\u003e\u003cimg src=\"https://github.com/DEgITx/cpk/actions/workflows/build.yml/badge.svg\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/DEgITx/cpk/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/release/DEgITx/cpk.svg\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/DEgITx/cpk/README.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/docs-faq-brightgreen.svg\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cb\u003e\u003cp align=\"center\"\u003e\u003ca href=\"https://cpkpkg.com\"\u003ehttps://cpkpkg.com - official repository site (search, download, information about packages)\u003c/a\u003e\u003c/p\u003e\u003c/b\u003e\n\n## CPK Package Manager\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/DEgITx/share/blob/main/cpk/cpk_basic.gif?raw=true\" /\u003e\u003c/p\u003e\n\nVery 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.\n\nMain 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.\n\nCPK 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.  \n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/DEgITx/share/blob/main/cpk/nn_search.gif?raw=true\" /\u003e\u003c/p\u003e\n\nCross-platform. Implemented on C/C++ and provided for **Linux, Mac OS, Windows arch**.\n\n## Features\n* Lightweight, written on C/C++\n* Cross-platform. Prebuilds packages for popular systems (like Windows, Linux, macOS), just download and ready to use. (Recommended add to path var)\n* 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...)\n* Everyone can publish the own package library or binary with one simple command.\n* Keep installation \u0026 popularity statistic to recommend most popular packages and libs (can be yours).\n* Using external effective build managers: like cmake, mingw32.\n* Easy to use configuration for packages: json based package config (very similar to npm).\n* 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.\n* Use GPT to search packages by description and your needes without actual knowing of package name.\n* Generate example code using GPT to any of the libraries right after library installation.\n\n## Download/install\n\nDownload last available version on [CPK at download page](https://github.com/DEgITx/cpk/releases). CPK is console based utility, so extact archive and add CPK utility to PATH of the system.\n\n## Usage\n\n### Installing packages\n```sh\ncpk install package\n```\nInstall 2 packages package=1.0 version and package2 latest version\n```sh\ncpk install package@1.0 package2\n```\n\n### Publish own package\nPublish your own package (inside directory of project):\n```sh\ncpk publish\n```\n\nAfter command execution the package must become published/updated on https://cpkpkg.com \n\n### List of available packages\nList of available packages for install:\n```sh\ncpk packages\n```\n\n### Update packages\nUpdate all packages:\n```sh\ncpk update\n```\n\n## Publish own package\n\nCPK 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.\n\nto publish your package you can create *cpk.json* with following very basic config with package name and list of dependencies:\n```json\n{\n\t\"package\": \"example\",\n\t\"dependencies\": {\n\t\t\"zlib\": \"\"\n\t}\n}\n```\n\nand use\n\n```sh\ncpk publish\n```\ncommand to publish you own package\n\n[https://cpkpkg.com/YOUR_PACKAGE](https://cpkpkg.com/zlib) - After publishing the package, it will displayed on reposity site.\n\n## Use of installed packages in your project\n\nFor example you installed zlib library that your project required\n```sh\ncpk install zlib\n```\nand you want to use it inside your project. You just need to execute cmake command for your project with cpk alias, like this:\n```sh\n# Insead of using:\n# cmake ../\n# use follow:\ncpk cmake ../\n```\n\nThe package will be founded in your project:\n\n```cmake\ncmake_minimum_required(VERSION 3.1)\nproject(zlib-test)\n\n# The library will be founded with cpk\nfind_package(ZLIB REQUIRED)\n```\n\nIt is also possible to execute with gcc, clang and other build tools (not only cmake types of project).\n\n### How does it work ?\n\nCPK will capture cmake command arguments and will add it own libraries and include pathes to cmake execution:\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/DEgITx/share/blob/main/cpk/cpk_args.png?raw=true\" /\u003e\u003c/p\u003e\n\nIn this example it's reaply arguments using sysroot with generated cmake -DCMAKE_PREFIX_PATH argument.\n\n## Use ChatGPT as part of CPK\n\n### Search packages by description\nYou can find any needed packages without knowing it names.\n\nUse:\n```\ncpk nn search Library to extract zip archives\n```\n\nYou will suggested to install libzip packages or other alternative.\n\n## Available commands\n\nAvailable commands and options:\n\n* `install PACKAGE` -  Install package\n* `publish` - Publish current package\n* `update` - Update tree of packages\n* `packages` - List of available packages\n* `info PACKAGE` - Recive information about package (like descriptions, downloads, version and so on)\n* `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.\n* `[build command]` - like `cpk cmake -G Ninja ../` to build project used installed libraries\n* `-h` - Help\n* `-v` - version of CPK\n\n## Build CPK Client by own\n\n```sh\nmkdir build\ncd build\ncmake -DCMAKE_BUILD_TYPE=Release ../\nmake -j8\n```\n\nWe recomend to build cpk using ninja + mingw:\n\n```sh\nmkdir build\ncd build\ncmake -G Ninja -DCMAKE_BUILD_TYPE=Release ../\nninja\n```\n\n## License\n[MIT](https://github.com/DEgiTx/cpk/blob/master/LICENSE)\n\n## Comparing with other package managers\n\n### Conan\n* No python and pip manager is required to start work with. The cpk in binary and source form on C/C++\n* No python required to create package, configuration of packages is with simple json syntax declared in cpk.json\n* Publishing package mechanism is easy\n* Open-source backend as part of cpk\n* Neural networks features (like search/install packages without knowing package real name or generate example library code)\n\n### Vcpkg\n* 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\n* Easy to start work with from the box (easy installing and publishing)\n* To start usage the package add \"cpk\" before cpk command is enought \"cpk cmake ../\" will take care for dependencies in your project.\n* Open-source backend as part of cpk\n* Neural networks features (like search/install packages without knowing package real name or generate example library code)\n","funding_links":["https://github.com/sponsors/DEgITx"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdegitx%2Fcpk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdegitx%2Fcpk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdegitx%2Fcpk/lists"}