81 lines
1.8 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:
```bash
mkdir venv
```
```bash
python3 -m venv venv/
```
```bash
source venv/bin/activate
```
```bash
./venv/bin/python -m pip install -r requiremets.txt
```
## Create a Py-Waku package
Run the following commands from the root folder:
```bash
source venv/bin/activate
```
```bash
./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:
```bash
cd vendor/nwaku
```
```bash
make libwaku -j8
```
```bash
cd ../../
```
```bash
cp vendor/nwaku/build/libwaku.so lib/
```
Notice that the `libwaku.so` library is also distributed within
the `Py-Waku` package.