Skip to content
Documentation
Project

User manual

Project statistics

Generated code measurements by crate and a verified, rounded active unit-test inventory.

These measurements describe the authored source tree used to build this documentation. They are generated at publication time, rather than maintained as figures in a README. Counts measure project size and coverage scope; they do not measure code quality or prove that tests pass.

Generated measurements#

MetricProject
Physical source lines227,044
Nonblank lines215,848
Source files712
Crates8
Published pages in this language116
Documentation Markdown files283
Project commits> 200 commits

Physical lines include comments and blank lines. Test sources and examples remain distinct from production code.

The commit count covers ancestors reachable from this publication’s HEAD revision, including merges, without counting other unmerged branches. The rounded lower bound is published only when the local Git history is complete; partial or missing history leaves the total unavailable. The calculation never fetches history over the network.

CrateProductionTestsExamplesTotal
aede-accounts78241601,198
aede-audio1,1901,16602,356
aede-cli37,46947,102084,571
aede-core42,50935,21446178,184
aede-devices4,0542,55806,612
aede-dsp1,6221,9875754,184
aede-moods7782130991
aede-server21,74021,089042,829
LanguageFilesPhysical lines
C2100
CSS2452
HTML1229
JavaScript5531
Python204,966
Rust677219,839
SQL1623
Shell4304

> 2,300 active unit tests

This rounded lower bound comes from registered Cargo library/binary tests, excluding ignored tests. Integration tests, doctests and Python helper tests are separate. Listing does not execute test bodies or establish that they pass.

Unit-test inventory: x86_64-unknown-linux-gnu, default features; collected at 2026-10-22T06:58:15+00:00.

Source metrics generated at 2026-10-22T06:58:15+00:00.

Reference revision: 2ecadf767129ea1710bc38d4e67db43c3d50a1cc (local sources are measured, including uncommitted changes).

Measured source fingerprint: 8a5fa00e0320e718f36de7cb34f0a5aa279c0446191527fe917db2f5a262c945.

What is counted#

Code lines are physical lines, including comments and blank lines, in the supported source files under crates/, tools/ and site/. Nonblank lines are reported separately. The crate table separates production, test/support and example code. Test code lines include integration tests and fixtures written in a source language; that is a different measure from the active unit-test inventory.

Generated output, build caches, vendored files, hidden directories, symlinks, music/images, JSON fixtures, Cargo manifests/lockfiles and Markdown are excluded from code lines. Documentation has its own file/page counts. A published page counts once per language, including an explicitly labelled English fallback when a topic has no French translation. The script reuses the publisher's page catalog rather than a separate list.

Project commits are the commits reachable from the captured HEAD revision, including its merge commits and merged ancestors once each. Commits on other, unmerged branches are excluded. The public figure uses the same strict rounded lower bound as TUs: an exact count of 100 displays “more than 90”, never “more than 100”. The JSON retains the exact count and reference revision. Uncommitted changes affect source measurements, but do not add commits.

Git history is inspected locally, without a fetch or other network request. A shallow checkout is explicitly marked as partial and its project total is unavailable; missing Git, an unreadable history or a source archive without Git metadata also leaves the total unavailable. The Site workflow checks out the complete history before measuring it. On a pull request, the checked-out HEAD may include a temporary merge commit created by CI; it is counted when it belongs to that revision's ancestry.

Active Rust unit tests come from compiled workspace library and binary test harnesses. The script lists registered tests, subtracts ignored tests and publishes a conservative rounded lower bound such as “more than 1,400 active unit tests”. It does not count #[test] text. Integration tests, example tests, doctests and Python helper tests are outside this TU count, even though they remain part of verification.

The inventory records the toolchain, host and feature configuration: conditional tests can differ between platforms or feature sets. Listing a test does not execute it. The published TU figure is available only when an inventory of the current Rust/Cargo sources has been supplied; a missing or stale inventory cannot silently become a current test count. See the verification workflow and current state for actual validation results.

Reproduce the report#

From the repository root, Python 3.9 or later is sufficient for source measurements; Git is needed only for the commit figure. No package installation or network request is needed:

python3 tools/project-stats.py
python3 tools/project-stats.py --json

To include active TUs, first provide the existing Rust/native build prerequisites from the installation guide. Fetch the locked dependencies explicitly if they are not already cached, then build/list test harnesses offline:

cargo fetch --locked
python3 tools/project-stats.py --tests --output target/project-stats.json
python3 tools/build-site.py --check --project-stats target/project-stats.json

--tests does not run the test bodies, play audio or access music files. Use tools/check.sh for the complete checks; it also generates the inventory and publishes the documentation from it. The Site workflow generates its own inventory for the Linux/default-feature build. The machine-readable JSON retains exact measurements and provenance for verification; the public TU and commit displays stay rounded. Do not commit generated reports from target/ or dist-site/.

For another configuration, use --no-default-features and/or --features "...". Cargo respects the existing CARGO_TARGET_DIR; an alternative inventory can be reused with --test-inventory PATH only while its Rust/Cargo source fingerprint still matches. Running the publisher without --project-stats still generates fresh source and commit statistics and explicitly leaves the TU figure unavailable. Supplying an inventory reuses only its TU data; sources and Git history are always measured again for the current publication.

Edit the Markdown source

The text comes from repository Markdown; statistics are calculated from sources and the supplied inventory.