Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mongoexpuser/debian-based-napi-rust-addons-wasm
Debian-Based NAPI-Rust Image and Container for Writing and Testing Rust Addon Modules for Node.js Applications.
https://github.com/mongoexpuser/debian-based-napi-rust-addons-wasm
addons cargo container crate docker napi napi-rust nodejs npm rust wasm
Last synced: 19 days ago
JSON representation
Debian-Based NAPI-Rust Image and Container for Writing and Testing Rust Addon Modules for Node.js Applications.
- Host: GitHub
- URL: https://github.com/mongoexpuser/debian-based-napi-rust-addons-wasm
- Owner: MongoExpUser
- License: mit
- Created: 2022-07-11T22:55:54.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-02-09T15:38:14.000Z (about 2 years ago)
- Last Synced: 2024-11-28T10:12:21.569Z (3 months ago)
- Topics: addons, cargo, container, crate, docker, napi, napi-rust, nodejs, npm, rust, wasm
- Language: Rust
- Homepage:
- Size: 535 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Debian-Based-NAPI-Rust-Addons-Wasm
Create a Debian-Based NAPI-Rust Image and Container for Writing and Testing NAPI-Rust Addon Modules for Node.js Applications.
NAPI-Rust is similar but different from NAPI C/C++ (https://nodejs.org/api/n-api.html)
NAPI-Rust is based on Rust toolchain and does not use node-gyp.
See NAPI C/C++ example: https://github.com/MongoExpUser/Shale-Reservoir-DNN-and-Drilling-Rare-Events-Graph/blob/master/test_addon.cc
## DEPLOYING IMAGE
### To deploy the image, follow these steps:
1) #### Clone repo
Clone the repo.
The Repo contains the following files:
(1) Dockerfile
(2) Cargo.toml
(3) package.json
(4) index.js
(5) ./src/build.rs
(6) ./src/lib.rs
(7) ./src/main.rs
(8) ./src/utilities.rs
Modify the above files as needed, or can keep the original contents to test.
2) #### BUILD docker image:
sudo docker build -t mongoexpuser/napi-rust-app:latest .
3) #### RUN docker container and map local CWD to docker working directory: "/home/myapp" :
sudo docker run -itd --name running-napi-rust-app -v "$PWD":/home/myapp --workdir=/home/myapp --privileged --restart unless-stopped mongoexpuser/napi-rust-app:latest4) #### INTERACT with container: start/restart, stop, shell into, and exit container instance, respectively:
sudo docker start running-napi-rust-app
sudo docker stop running-napi-rust-app
sudo docker exec -it running-napi-rust-app bash
exit
5) #### RUN commands inside the Docker instance, to compile, re-compile, run node.js app and clean code artifacts, respectively:
sudo docker exec -it running-napi-rust-app npm run build
sudo docker exec -it running-napi-rust-app npm rebuild
sudo docker exec -it running-napi-rust-app node index.js
sudo docker exec -it running-napi-rust-app cargo clean6) #### TEST Node.js code inside the container in the CWD:
sudo docker exec -it running-napi-rust-app node index.js
## MISCELLANEOUS
### Wasm:
1) In addition, the repo contains miscellaneous sample Rust codes and steps on how to compile the codes to WASM (Web Assembly) file.
See the link below.
https://github.com/MongoExpUser/Debian-Based-NAPI-Rust-Addons/blob/main/wasm/sample.rs2) The repo also contains HTML file that uses the compiled WASM file on the Front-End (Browser).
See the link below.
https://github.com/MongoExpUser/Debian-Based-NAPI-Rust-Addons/blob/main/wasm/index.html
# References
1 - https://github.com/napi-rs/napi-rs
2 - https://www.npmjs.com/package/@napi-rs/cli# License
Copyright © 2015 - present. MongoExpUser
Licensed under the MIT license.