61 lines
1.7 KiB
Markdown
Raw Normal View History

# Py-Waku
## Introduction
Py-Waku exposes a Waku module that can be used within Python projects.
It is fundamentally a wrapper around [nwaku](https://github.com/waku-org/nwaku)
This repo has been tested with Python3 in Ubuntu.
If need a different setup, don't hesitate con contact us on Discord. The Discord server can be found at https://docs.waku.org/.
## Prepare the development environment
Run the following commands from the root folder:
1. mkdir venv
2. python3 -m venv venv/
3. source venv/bin/activate
4. ./venv/bin/python -m pip install -r requiremets.txt
## Create a Py-Waku package
Run the following commands from the root folder:
1. source venv/bin/activate
2. ./venv/bin/python3 -m build
## Test the package
For that, we have a very simple example in `tests/waku_example.py`.
In order to use the waku module, please install it from the local `dist/` folder, that can be created by following the
instructions from the previous section.
The following command is an example on how to install the local
package to your local virtual env.
```bash
./venv/bin/python3 -m pip install dist/waku-0.0.1-cp310-cp310-linux_x86_64.whl
```
## Update the libwaku.so library
Given that `Py-Waku` conforms a wrapper around `libwaku.so`,
it is likely that you would need to upgrade it.
For that, you will need to update the submodule pointer
to a more recent nwaku version:
1. `cd vendor/nwaku`
2. Check out to the commit/tag as you wish
Then, follow the following steps from the root folder
to rebuild the `libwaku.so` library:
1. `cd vendor/nwaku`
2. `make libwaku -j8`
3. `cd ../../`
4. `cp vendor/nwaku/build/libwaku.so lib/`
Notice that the `libwaku.so` library is also distributed within
the `Py-Waku` package.