Generates native-language classes/structs for V49.2 packet definitons in a YAML configuration file.
vrtgen
requires Python >= 3.7 as well as pip
for Python >= 3.7.
To build the C++ header library, CMake 3.15 or later must be installed.
Generated C++ code requires g++ >= 10 for C++20 support, including concepts. The only dependency is the C++ header library. See the testing section.
If using the NATS command socket type option with vrtpktgen
, the following library is also
required:
Installation via pip
is recommended, as it will automatically install the required dependencies.
To install via pip
:
sudo pip3 install --upgrade pip
pip3 install --user .
This will install both the vrtgen
Python modules and the vrtpktgen
executable.
The vrtgen
backend library is header only and can be included directly into your build tree
by adding the contents of the include folder to your project's build structure.
To install the C++ library header files on your system:
cmake3 -B build
sudo cmake3 --build build --target install
On some Linux systems, CMake 3 is the default; run cmake
instead of cmake3
.
The headers are installed to /usr/local/include/vrtgen
by default.
External
To use the library from a CMake project, you can use find_package()
to discover and use the
namespaced target from the package configuration:
# CMakeLists.txt
find_package(vrtgen REQUIRED)
...
add_executable(foo foo.cpp)
...
target_link_libraries(foo PRIVATE vrtgen::vrtgen)
FetchContent
Using CMake's FetchContent allows this library to be downloaded and used as a dependency at configuration time, therefore avoiding the need to install it on your system:
# CMakeLists.txt
include(FetchContent)
FetchContent_Declare(
vrtgen
GIT_REPOSITORY https://github.com/geontech/vrtgen
GIT_TAG v0.7.14
)
FetchContent_MakeAvailable(vrtgen)
...
add_executable(foo foo.cpp)
...
target_link_libraries(foo PRIVATE vrtgen::vrtgen)
For developers, pip
supports an editable install mode that links the source code to the Python
site-packages
directory.
It is strongly recommended to use a venv
environment or Docker image for development.
To perform a "developer install" using a virtual environment:
python3 -m venv venv
. venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .
This package installs a vrtpktgen
executable in your path.
The vrtpktgen
program supports backend plug-ins to target different output types.
By default, the cpp
backend is installed.
Select an available backend with the first positional argument.
vrtpktgen cpp <filename>.yaml
Help is available with the --help
(or -h
) option.
To get general help or to check which backends are available:
vrtpktgen --help
To build and execute the tests:
cmake3 -B build -DVRTGEN_BUILD_TESTS=ON
cmake3 --build build --target check
To run the Python parser tests:
pytest