A compiler-pipeline dependency resolver and installer for the Cpyte programming language.
import @std.json
↓
Resolve → Lower → Optimize → Execute
pip install cpyte-cpmNote: 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.
cpm init # create cpytoml
cpm add @std/json@^2.0 # add a dependency
cpm install # install all from manifest| 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 |
-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
[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"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.
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).
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"~/.cpm/
├── cache/<name>/<version>/ # downloaded archives
└── modules/<name>/<version>/ # extracted packages
MIT