cpdocs
cpdocs generates semantic, versioned API documentation for C, C++, Python and Rust projects.
It asks the project's build system, through a small JSON contract, which variants of the API exist
and how to read each of them. It then extracts every variant, Clang for C and C++, ast for Python
and rustdoc JSON for Rust, merges them into one reference, and publishes one version per configured
branch and tag. A CMake adapter ships with cpdocs; other build systems implement the same contract.
cpdocs build # document the working tree into build/cpdocs/current
cpdocs versions # document the configured branches and tags
properdocs build # project website with the versioned API mounted
The configuration lives in docs/cpdocs.yml, the API introduction in docs/api/index.md and the
ProperDocs pages in docs/web. The documentation starts at docs/web/index.md; the examples/
directory holds standalone projects that the test suite builds.
Development
uv sync
uv run pytest
uv run ruff check && uv run ruff format --check
The C and C++ tests need clang++, cmake and ninja; they are skipped when these are missing.
Metadata
Release files for cpdocs 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cpdocs-0.1.0.tar.gz | 149.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cpdocs-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 227.7 kB
Release files / cpdocs-0.1.0.tar.gz
| Download URL | cpdocs-0.1.0.tar.gz |
|---|---|
| Size | 149.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d5ff2f4570026ae1eff40e3d697df18ee19264aef382fc3517204276500dc281
|
|
BLAKE2b-256 checksum How to use checksums |
51ae9c391bc573dddd7ab4e68863883eb02711c2655c14c9e84e83c58fd4ca8c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.18.1 {"ci":null,"cpu":"x86_64","distro":{"libc":{"lib":"glibc","version":"2.44"},"name":"Arch Linux"},"implementation":{"name":"CPython","version":"3.14.7"},"installer":{"name":"hatch","version":"1.18.1"},"openssl_version":"OpenSSL 3.6.4 25 Aug 2026","python":"3.14.7","system":{"name":"Linux","release":"6.18.54-1-lts"}} HTTPX2/2.13.1
|
Release files / cpdocs-0.1.0-py3-none-any.whl
| Download URL | cpdocs-0.1.0-py3-none-any.whl |
|---|---|
| Size | 78.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
00913d547768eda06d73ba96bb730b38d6f3fb605e01294cf93f777abe283118
|
|
BLAKE2b-256 checksum How to use checksums |
3da84fc5375522bcc937442af93afb82f621626c72de5d04c4dedf23b14ed440
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.18.1 {"ci":null,"cpu":"x86_64","distro":{"libc":{"lib":"glibc","version":"2.44"},"name":"Arch Linux"},"implementation":{"name":"CPython","version":"3.14.7"},"installer":{"name":"hatch","version":"1.18.1"},"openssl_version":"OpenSSL 3.6.4 25 Aug 2026","python":"3.14.7","system":{"name":"Linux","release":"6.18.54-1-lts"}} HTTPX2/2.13.1
|