# Intro

This repository contains a helper library for coding
WebAssembly-powered user-defined functions for openGauss.

*[note]: This repository is forked and modified based on [libsql_bindgen](https://github.com/libsql/libsql_bindgen)
* Show respect to Piotr Sarna

Marking a native Rust function with `#[opengauss_bindgen]` macro
and compiling it to `wasm32-unknown-unknown` target
is enough to produce a user-defined function definition
callable directly from openGauss

Try it yourself:
```
cd examples/encrypt_decrypt
./gen_wasm.sh 
```

There are also [advanced examples that require WasmEdge](examples/wasmedge) to run:

* [Call external HTTPS web services from a UDF](examples/wasmedge/get_exchange_rate)
* [Classify image fields using a PyTorch model](examples/wasmedge/wasi_nn_udf)