Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (userust) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
useRust
Add custom Rust WebAssembly hooks for React and SolidJS projects
pub fn add(a: i32, b: i32) -> i32 {
a + b
}$ npx userust build my-rust-code
import useRust from 'my-rust-code'
const Calculator = () => {
const { rust, error } = useRust()
return <div>1+1={rust?.add(1,1)}</div>
}How it works
- Have an existing React or SolidJS project
npx userust init <MY_NAME>will compile and install a custom useRust hook to your project- Make changes to
./<MY_NAME>/rust/ npx userust build <MY_NAME>will recompile theuseRust-hook
Alternatively you can use npx userust watch <MY_NAME> to automatically recompile after changes to Rust code
Uses wasm-bindgen to compile WebAssembly. See Rust code examples at its documentation page.
Features
- Leverage Rust and Wasm to speed up critical parts of your frontend
- Fully typed TypeScript interface, works in JavaScript projects as well
- Generate and compile Rust via CLI, the Rust code can be freely tweaked
- npm, pnpm and yarn supported
- Simple interface inspired by SWR library.
Known issues with npm version 9
If you use npm version 9, userust build might not get reflected on your frontend.
If that is the case, remove node_modules and run npm ci to update
If npm version 9 with Vite, you might also need to add
optimizeDeps: {
exclude: ["<MY_NAME>"]
},where <MY_NAME> is the name of your useRust package, into your vite.config.ts.
Otherwise the WebAssembly fails to load.
Licence
The MIT License.