Skip to content

Custom Rust WebAssembly hooks for React and SolidJS projects

License

Notifications You must be signed in to change notification settings

ollipal/useRust

Repository files navigation

useRust

Add custom Rust WebAssembly hooks to React and SolidJS projects

// my-rust-code/src/lib.rs
#[wasm_bindgen]
pub fn add(a: i32, b: i32) -> i32 {
    a + b
}
import useRust from 'my-rust-code'

const Calculator = () => {
  const { rust, error } = useRust()
  return <div>1+1={rust?.add(1,1)}</div>
}

How it works

  1. Have an existing React or SolidJS project
  2. npx userust init NAME will compile and install a custom useRust hook to your project
  3. Use it in your project: import useRust from 'NAME'
  4. Make changes to ./NAME/src/lib.rs
  5. npm run NAME:build will recompile the useRust hook

Alternatively you can use npm run NAME:watch to automatically recompile after changes to Rust code

Uses wasm-bindgen. 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
  • No limitations for Rust code, provides a minimal, properly configured boilerplate to start with
  • Develop frontend and Rust code from the same monorepo with a few simple commands
  • Tested on Linux, MacOS and Windows
  • npm, pnpm and yarn supported
  • Simple interface inspired by SWR library

Full documentation

Licence

The MIT License.

About

Custom Rust WebAssembly hooks for React and SolidJS projects

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published