rgpot

Author:

Rohit Goswami

_images/rgpot_logo.webp

Overview

RPC Generalized Potential Library, or rgpot provides a unified schema for interfacing potential servers across languages using runtime interoperability.

Developer Reference

For details on the architecture or internal API:

Usage

Setting up and running tests:

pixi shell
meson setup bbdir -Dwith_tests=True --buildtype="debug"
meson test -C bbdir

cmake works as well.

cmake -B build -DRGPOT_BUILD_TESTS=ON -DRGPOT_BUILD_EXAMPLES=ON
cmake --build build
ctest --test-dir build

For building only the client, with CXX17 and CapnProto only:

cmake -B build_client\
    -DRGPOT_RPC_CLIENT_ONLY=ON\
    -DRGPOT_BUILD_TESTS=ON
cmake --build build_client
# needs a server instance, so in another terminal
# say from the meson.build
./bbdir/CppCore/rgpot/rpc/potserv 12345 LJ
# now test
ctest --test-dir build_client/ --output-on-failure

Developing locally

A pre-commit job is setup on CI to enforce consistent styles, so it is best to set it up locally as well (using pipx for isolation):

# Run before commiting
uvx pre-commit run --all-files

Handling actions

To keep the build matrix setup manageable, we use Nickel.

pixi r gen-gha

License

MIT, however note that some of the potentials are adapted from eOn which is under a BSD 3-Clause License.