Prepare documentation for building a Python and WebAssembly libraries.

This commit is contained in:
Dorian 2019-02-06 10:39:39 -05:00
parent 4000c1a86a
commit f584b17d7b
1 changed files with 12 additions and 3 deletions

View File

@ -2,7 +2,7 @@
Embed a small bit of code that converts between units of measure, e.g. Fahrenheit to Celsius. Embed a small bit of code that converts between units of measure, e.g. Fahrenheit to Celsius.
An example of a Rust library that is embeddable in Python and Web Assembly. An example of a Rust library that is embeddable in Python and WebAssembly.
## Getting setup ## Getting setup
@ -11,15 +11,24 @@ Insure the following dependencies are in place:
* Rust v1.32+ (nightly) * Rust v1.32+ (nightly)
* Install using `rustup toolchain install nightly` * Install using `rustup toolchain install nightly`
* Set default toolchain `rustup default nightly` * Set default toolchain `rustup default nightly`
* Python 3 Development headers (python3-dev in Ubuntu) * Python dependencies
* pipenv `pip install --user pipenv` * Python 3 Development headers `apt install python3-dev`
* pipenv `pip install --user pipenv`
* WebAssembly
* [wasm-pack](https://rustwasm.github.io/wasm-pack/installer/)
* npm
## Running the Python example ## Running the Python example
1. Build the rust crate first: `cargo build` 1. Build the rust crate first: `cargo build`
1. Install dependencies and run in a virtualenv: `pipenv install && pipenv shell`
1. Create the Python package with: `pyo3 develop` 1. Create the Python package with: `pyo3 develop`
1. Run the tests: `pytest test.py` 1. Run the tests: `pytest test.py`
## Running the WebAssembly example
TODO:
## Documentation ## Documentation
* [PyO3 Python - Rust bindings](https://pyo3.rs/master/get_started.html) * [PyO3 Python - Rust bindings](https://pyo3.rs/master/get_started.html)