CPM — Cpyte Package Manager
A compiler-pipeline dependency resolver and installer for the Cpyte programming language.
import @std.json
↓
Resolve → Lower → Optimize → Execute
Install
pip install cpyte-cpm
Note: CPM uses the Cpyte package registry at https://cypackage.5gnew.io.vn/ as the default package source for Cpyte packages. The default registry is configured in pyproject.toml.
Quick Start
cpm init # create cpytoml
cpm add @std/json@^2.0 # add a dependency
cpm install # install all from manifest
Commands
| Command | Description |
|---|---|
cpm init |
Initialize a new project (cpytoml) |
cpm add <pkg> |
Add packages to manifest + install |
cpm remove <pkg> |
Remove packages + uninstall |
cpm install |
Install all dependencies from manifest |
cpm install <pkg> |
Install specific packages |
cpm update |
Re-resolve and update all packages |
cpm update <pkg> |
Re-resolve specific packages |
cpm build |
Build the project |
cpm run <script> |
Run a named script |
Global Flags
-v, --verbose Verbose output
-q, --quiet Suppress output
-y, --yes Auto-confirm prompts
--offline Offline mode (skip network)
--no-cache Disable cache
--config <path> Custom config / repo URL
--target <platform> Target platform (e.g. linux/x86_64)
--llvm-version <V> LLVM version for prebuilt packages
Manifest (cpytoml)
[cpm]
name = "my-app"
version = "1.0"
prebuilt = false
llvm_version = "18.1.0"
[cpm.target]
os = "linux"
arch = "x86_64"
features = ["gui", "ssl"]
[cpm.dependencies]
"@std/json" = "^2.0"
"@std/http" = "1.0"
"package_a" = "latest"
Claims System
Packages declare platform support; CPM filters based on your target.
Package metadata (registry):
{
"name": "win32-api",
"claims": { "os": ["windows"], "arch": ["x86_64"] }
}
Resolution:
| Target | win32-api (windows) |
posix-api (linux) |
@std/json (any) |
|---|---|---|---|
linux/x86_64 |
skip | install | install |
windows/x86_64 |
install | skip | install |
Auto-detects from current platform when no target is specified.
Prebuilt Mode
When the registry serves precompiled LLVM IR:
[cpm]
prebuilt = true
llvm_version = "18.1.0"
CPM fetches .ll artifacts from metadata/prebuilt/... and skips source packages
with incompatible LLVM versions (major version must match).
Lockfile (cpm.lock)
Auto-generated. Pins exact versions for reproducible builds.
[[package]]
name = "@std/json"
version = "2.0.3"
resolved = "https://repo.example.com/group/std/json/2.0.3.tar.gz"
checksum = "sha256:abc123..."
dependencies = ["@std/encoding@1.2.0"]
llvm_version = "18.1.0"
cpyte_version = "0.5.0"
Directory Layout
~/.cpm/
├── cache/<name>/<version>/ # downloaded archives
└── modules/<name>/<version>/ # extracted packages
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cpyte_cpm-1.1.7.tar.gz.
File metadata
- Download URL: cpyte_cpm-1.1.7.tar.gz
- Upload date:
- Size: 24.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85e9770730331ff5fa2fd550073614a6715b1f4cf42ea74e6aac38ad69346094
|
|
| MD5 |
d15b4767355b8b394efbf074c0a4b375
|
|
| BLAKE2b-256 |
1d65c655b5632584946900ff31a449f89d5f1fd7df689e6ad85483c200895de4
|
File details
Details for the file cpyte_cpm-1.1.7-py3-none-any.whl.
File metadata
- Download URL: cpyte_cpm-1.1.7-py3-none-any.whl
- Upload date:
- Size: 26.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a1aba0a051a1bb9c93da0ca5954b059f8ba78f3fd61486516f86b3a6ef05394
|
|
| MD5 |
eaf315ac9a25df66f1881322a0c02372
|
|
| BLAKE2b-256 |
b036706131dd7035350adb5917da5b9e3fc0ad500814bf0941369ec72bb03b9e
|