# c3pm — Package Manager for the C3 Programming Language > c3pm is a Nix-backed package manager and reproducible build environment for the C3 programming language and c3c compiler. This c3pm manages packages for the C3 programming language and c3c compiler. It is separate from the older C++ project with the same name. The current documented release is 0.3.3. The supported platform is Linux x86_64. c3pm manages C3 source dependencies, native libraries, project toolchains, and portable application bundles through Nix. The links below lead to the official documentation. Package names in a registry use `namespace/name`; a C3 library's manifest `provides` name can differ from its registry package name. ## Getting started - [Home](https://c3pm.dev/): c3pm is a Nix-backed package manager and reproducible build environment for the C3 programming language and c3c compiler. - [Installation](https://c3pm.dev/docs/getting-started/installation/): Install c3pm for the C3 programming language and choose a Nix backend. - [Quick start](https://c3pm.dev/docs/getting-started/quickstart/): Create a C3 project, install raylib, and run a windowed hello world with c3pm. - [How c3pm works](https://c3pm.dev/docs/getting-started/how-it-works/): Understand how C3 packages, native libraries, c3c, and Nix fit together. ## Guides - [Search and add packages](https://c3pm.dev/docs/guides/packages/): Find C3 libraries, inspect their versions, and manage project dependencies. - [Package C3 libraries](https://c3pm.dev/docs/guides/packaging/): Prepare .c3l libraries and bindings for use in c3pm registries. - [Link libraries and projects](https://c3pm.dev/docs/guides/linking/): Link native libraries, Nix packages, and C3 library targets with c3pm. - [Configure toolchains](https://c3pm.dev/docs/guides/toolchains/): Select the c3c compiler, pin nixpkgs, and choose a Nix backend. - [Build and run](https://c3pm.dev/docs/guides/build/): Synchronize C3 dependencies and build, test, or run inside the c3pm development shell. - [Create portable bundles](https://c3pm.dev/docs/guides/bundles/): Package a C3 application and its runtime dependencies as one Linux executable. - [Manage registries](https://c3pm.dev/docs/guides/registries/): Use the default catalog, add a team or local registry, and keep package search up to date. ## Examples - [SQLite application](https://c3pm.dev/docs/examples/sqlite/): Build a C3 SQLite todo application and package it as a portable executable. ## Reference - [CLI commands](https://c3pm.dev/docs/reference/cli/): Command syntax, aliases, and options for the c3pm C3 package manager. - [Project and library manifests](https://c3pm.dev/docs/reference/manifests/): Understand project.json and .c3l/manifest.json files used by c3pm. - [c3pm metadata](https://c3pm.dev/docs/reference/metadata/): Source, toolchain, link, and native package fields under vendor.c3pm. - [Registry format](https://c3pm.dev/docs/reference/registry/): Directory layout and JSON fields for publishing packages in a c3pm registry. - [Lock file](https://c3pm.dev/docs/reference/lock-file/): How c3pm records reproducible source and toolchain inputs in flake.lock. - [Installer options](https://c3pm.dev/docs/reference/installer/): Installation locations, Nix modes, command options, and environment variables. ## Internals - [Dependency resolution and Nix](https://c3pm.dev/docs/internals/dependency-resolution/): How c3pm resolves C3 library graphs and generates a locked Nix environment. - [Portable bundle implementation](https://c3pm.dev/docs/internals/bundles/): How Nix packages a C3 executable and its referenced runtime closure. ## Contributing - [Build c3pm from source](https://c3pm.dev/docs/contributing/build-from-source/): Build and test c3pm from its C3 source and preview documentation changes. ## Optional - [GitHub source](https://github.com/SMFloris/c3pm): C3 source code, issues, and development history. - [Releases](https://github.com/SMFloris/c3pm/releases): Released binaries and the installer. - [Default package registry](https://github.com/SMFloris/c3pm-registry): Published package metadata used by c3pm.