cpdocs
cpdocs generates semantic, versioned API documentation for C, C++, CUDA, HIP, Fortran, Python and Rust projects.
It asks the project's build system, through a small JSON contract, for the concrete feature sets to
document. It builds each feature set independently, consumes the resulting manifest, extracts the API
with Clang for C-family languages, source modules for Fortran, ast for Python or rustdoc JSON for
Rust, and merges the results. Implementation files from the manifest are kept in the file hierarchy
without becoming API entities.
Feature-set availability and API language are tracked independently. The versions
to publish are an explicit ordered list in cpdocs.yml.
cpdocs build # document the working tree into build/cpdocs/current
cpdocs versions # document the configured versions
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. Building the Rust example/site also needs
the nightly toolchain pinned by examples/rust-basic/rust-toolchain.toml.
Metadata
Release files for cpdocs 0.3.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.3.0.tar.gz | 156.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cpdocs-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 239.0 kB
Release files / cpdocs-0.3.0.tar.gz
| Download URL | cpdocs-0.3.0.tar.gz |
|---|---|
| Size | 156.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8b1fbf2cdec443f45a908b4ab0385fb505856ba0fb6874c024a428ca98c469cf
|
|
BLAKE2b-256 checksum How to use checksums |
96dfe556eea038157739348b008bb0b15de28b6f09df314d5337eba95dcb5d47
|
| 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.3.0-py3-none-any.whl
| Download URL | cpdocs-0.3.0-py3-none-any.whl |
|---|---|
| Size | 82.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
df73032b6bb635280df10fd1fe2af5419e1e2e3832ca23606d4ea2e244ee54ab
|
|
BLAKE2b-256 checksum How to use checksums |
5aa20ac162bf7216001cc61fece3b30b5bdc42adc62f1dbca88dcfff35b5038d
|
| 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
|