/wax

Call hived functions from Python and Javascript.

Primary LanguagePythonMIT LicenseMIT

wax

An extension module to call hived cpp source code from Python and JavaScript.

Building

You need to install protobuf compiler first:

apt install protobuf-compiler

Python building and instaling

First, we need to have installed poetry. To do that, simply type:

curl -sSL https://install.python-poetry.org | python3 - --version 1.6.1

Building

Wax uses dedicated version of boost library (it is statically built to reduce Python packages dependencies). Please use a CI base image defined here: https://gitlab.syncad.com/hive/wax/-/blob/develop/python/docker/Dockerfile.ci?ref_type=heads as your build environment. Prebuilt image can be also retrieved from Gitlab container registry: https://gitlab.syncad.com/hive/wax/container_registry/556

In order to build wax python package, one need to simply type from root project directory:

./python/scripts/build_wax.sh

This script will generate wheel file using virtual environment of poetry which will be saved in ./dist directory.

Instaling

It is recomended to create python virtual env, and install wax package it there, for example:

python3 -m venv venv
source ./venv/bin/activate

Now in order to install wax module to python, one need to type.

python3 -m pip install ./dist/CREATED-WAX-WHEEL.whl (for example wax-0.0.0-cp310-cp310-manylinux_2_35_x86_64.whl)

You can always take prebuilt PyPI package also pushed to Gitlab package registry - here is for example some develop related version: 0.0.3a2.dev131+bb99c4e: https://gitlab.syncad.com/hive/wax/-/packages/3474

Packages produced for Git protected tags will be versioned according to tag names.

TypeScript Building

All of the required TypeScript-related information is available in the npm.ts.md file

Testing

Python Testing

For more info about examples, please check examples.

In order to run examples, just type:

./examples/python/run_example.sh 

License

See license in the LICENSE.md file