Repository layout

C++

src/*.cpp

Source files. Files are grouped into functionality by prefixes:

src/recv_*.cpp

Receiving data (spead2::recv namespace).

src/send_*.cpp

Sending data (spead2::send namespace).

src/common_*.cpp

Other general shared code (spead namespace).

src/unittest_*.cpp

C++ unit tests.

src/spead2_*.cpp and src/mcdump.cpp

Command-line utilities.

src/py_*.cpp

Python bindings.

src/*.h

Header files that are only used internally (not installed for users).

include/spead/*.h

Header files that are installed and form the public API. The filenames mostly correspond to the source files.

examples/*.cpp

Example code.

Python

src/spead2/

Source code. This is placed within a src subdirectory so that Python does not automatically import from it unless explicitly added to the Python path. See Packaging a Python Library for an explanation of the advantages.

src/spead2/tools/

Implementations of the command-line tools.

examples/*.py

Example code.

tests/

Unit tests. These are mainly for use with pytest, but tests/shutdown.py contains tests that are run to ensure that the interpret shuts down cleanly (see Interpreter shutdown).

Other

gen/

Utilities that run as part of the build.

doc/

Documentation.