wasm-pack | 📦✨ your favorite rust - > wasm workflow tool

 by   rustwasm Rust Version: 0.12.1 License: Apache-2.0

kandi X-RAY | wasm-pack Summary

kandi X-RAY | wasm-pack Summary

wasm-pack is a Rust library typically used in Binary Executable Format applications. wasm-pack has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can download it from GitHub.

This tool seeks to be a one-stop shop for building and working with rust- generated WebAssembly that you would like to interop with JavaScript, in the browser or with Node.js. wasm-pack helps you build rust-generated WebAssembly packages that you could publish to the npm registry, or otherwise use alongside any javascript packages in workflows that you already use, such as webpack.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              wasm-pack has a medium active ecosystem.
              It has 5216 star(s) with 363 fork(s). There are 53 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 271 open issues and 480 have been closed. On average issues are closed in 472 days. There are 38 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of wasm-pack is 0.12.1

            kandi-Quality Quality

              wasm-pack has 0 bugs and 0 code smells.

            kandi-Security Security

              wasm-pack has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              wasm-pack code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              wasm-pack is licensed under the Apache-2.0 License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              wasm-pack releases are available to install and integrate.
              Installation instructions, examples and code snippets are available.
              It has 281 lines of code, 0 functions and 9 files.
              It has low code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of wasm-pack
            Get all kandi verified functions for this library.

            wasm-pack Key Features

            No Key Features are available at this moment for wasm-pack.

            wasm-pack Examples and Code Snippets

            How do to build and run
            JavaScriptdot img1Lines of Code : 6dot img1License : Non-SPDX (NOASSERTION)
            copy iconCopy
            git clone git@github.com:Avokadoen/tetris_wasm.git
            
            cd ./tetris-wasm
            
            wasm-pack build
            
            cd ./www
            
            npm install
            
            npm run start (to change port: -- --port 8008)
              
            copy iconCopy
            curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
            
            curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
            
            cargo install wasm-pack
            
            cargo install cargo-watch
              

            Community Discussions

            QUESTION

            How can I make webpack embed my *.wasm for use in a web worker?
            Asked 2022-Mar-30 at 07:38

            I have some rust code that compiles to web assembly using wasm-pack and wasm-bindgen. I want to call into this code from a web worklet/worker. The entire app should eventually be just one single *.js file, with everything else inlined.

            This is what I imagine my build process to look like:

            1. Use wasm-pack to compile the rust code to *.wasm and *.js bindings (this step works just fine)
            2. Use webpack to build a self-contained *.js file that I can load as a worklet/worker. The *.wasm must be included in this file. (this step fails)
            3. Use webpack again to build my final app/package, inlining the worklet/worker file from step 2. (this step works just fine)

            My problem is in step 2: I can't make webpack inline the *.wasm into the worklet/worker file. I tried this in my webpack config:

            ...

            ANSWER

            Answered 2022-Mar-30 at 07:38
            The solution
            1. Build the wasm itself: cargo build --target=wasm32/unknown/unknown
            2. Build the JS-bindings: wasm-bindgen --out-dir=dist --target=web --omit-default-module-path my-wasm-package.wasm.
            3. Consume the wasm in your worklet script like this:

            Source https://stackoverflow.com/questions/70420273

            QUESTION

            Caching Rust/Wasm tools in Gitlab CI?
            Asked 2022-Feb-04 at 08:48

            I'm working with Wasm and Rust, and I'm deploying the page with gitlab pages.

            I'm using a gitlab-ci.yml file that looks like this:

            ...

            ANSWER

            Answered 2022-Feb-04 at 08:46

            This page: Caching in GitLab CI/CD talks about caching and/or using artifacts to persist files between jobs. You may be able to make use of that.

            It then becomes a question of how to get cargo install to use that cache or the saved artifacts.

            Alternatively, you can define your own base build image (run the cargo install steps in that), and store that in Gitlab's docker registry; see https://docs.gitlab.com/ee/user/packages/container_registry/.

            Source https://stackoverflow.com/questions/70983387

            QUESTION

            can't install cargo wasm-pack
            Asked 2021-Nov-24 at 20:29

            When i run cargo install wasm-pack on windows 10 64-bit i get this error:

            ...

            ANSWER

            Answered 2021-Aug-04 at 07:28

            Make sure you have the development packages of Open SSL installed. For example, libssl-dev on Ubuntu or openssl-devel on Fedora. If OpenSSL is already installed and the crate still had trouble finding it, you can set the OPENSSL_DIR environment variable to specify the path for your Open SSL installation. If you are using windows you can use the Win32/Win64 OpenSSL Installation Project to provide a simple installation of OpenSSL on windows.

            Source https://stackoverflow.com/questions/68646684

            QUESTION

            No matching package found
            Asked 2021-Oct-01 at 08:02

            I am trying to integrate an API in a yew project and facing the following issue:

            ...

            ANSWER

            Answered 2021-Oct-01 at 06:47

            The error tells you that no package yewtil was found in the Git repository. If you go to the repository and check its Cargo.toml file, you will indeed notice that it doesn't include a yewtil package.

            I searched in the repository for yewtil, and found this pull request that refactored the project and merged yewtil into other packages: yewstack/yew#1842.

            You have two options now:

            1. Drop the dependency on yewtil, and use the documentation to figure out where the features have moved that you want to use.
            2. Add a tag key to the dependency to pull in the latest release that included yewtil, or simply switch to the latest published version on crates.io.

            If you want to get the latest features from yew, which appears to be the case given that you're pulling in the package from GitHub and not crates.io, go with option 1. You can use the documentation and the examples in the master branch to see how to use the package in its latest version.

            Source https://stackoverflow.com/questions/69400492

            QUESTION

            How do I import a rust WASM module in gatsby js?
            Asked 2021-Jul-19 at 17:54

            I'm trying to use my rust module from the rust webassembly book in my gatsby project. When I try to import the module like so:

            import { } from 'rust_wasm_npm_package';

            I get the following error:

            ...

            ANSWER

            Answered 2021-Jul-19 at 17:54

            I was able to get this working by adding a gatsby-node.js file with the following code:

            Source https://stackoverflow.com/questions/68263367

            QUESTION

            My rust code compiled to wasm is slower than js, what did i do wrong?
            Asked 2021-Jul-07 at 16:38

            This is the original function that i wanted to translate in rust to compile it in wasm in the idea that it will make it faster ( since it's a hot function in my server )

            ...

            ANSWER

            Answered 2021-Jul-07 at 16:26

            The number of allocations in your code can be greatly decreased from n*2 in the worst case to a constant 1 (ignoring Uuid::new_v4 which I count as a constant factor that's external to the algorithm at hand) by making use of the write! macro and format specifiers:

            Source https://stackoverflow.com/questions/68285476

            QUESTION

            Go WASM export functions
            Asked 2021-Jun-15 at 09:04

            I want to create a .wasm file which still has the function names exported when compiled.

            ...

            ANSWER

            Answered 2021-Jun-15 at 09:04

            If you plan to write a lot of WASM in Go, you might want to consider compiling with TinyGo, which is a Go compiler for embedded and WASM.

            TinyGo supports a //export or alias //go:export comment directive that does what you're looking for.

            I'm copy-pasting the very first example from TinyGo WASM docs:

            Source https://stackoverflow.com/questions/67978442

            QUESTION

            How to debug Rust and WebAssembly program with VSCode and CodeLLDB?
            Asked 2021-Apr-14 at 00:36

            I am writing Rust and WebAssembly program. I wanted to debug Rust and WebAssembly program with VSCode and CodeLLDB, but I got an error. I can debug simple Rust program, but fail to debug Rust and WebAssembly program. Steps to reproduce the error are shown below.

            Clone the Rust and WebAssembly project template with this command:

            cargo generate --git https://github.com/rustwasm/wasm-pack-template

            Then, type the project name. I used "foo". Add a test in foo/src/lib.rs

            ...

            ANSWER

            Answered 2021-Apr-14 at 00:36

            This might be not the most helpful answer, but the answer is you currently can't - there is an open issue on wasm-bindgen repo tracking future support for debugging but it's not yet supported: https://github.com/rustwasm/wasm-bindgen/issues/2389

            Note that even when it will be, you'll need to use browser DevTools not CodeLLDB for WebAssembly debugging, since you need a JavaScript-capable environment.

            Source https://stackoverflow.com/questions/67032785

            QUESTION

            Is it possible to use wasm-bindgen with webpack 5?
            Asked 2021-Mar-22 at 23:39

            I followed the Hello World Guide for wasm-bindgen (I am using wasm-bindgen = "0.2.72").

            Unfortunately the npm packages mentioned in the guide are not really up to date. Because I would like to have a clean starting point, I tried to upgrade them.

            This is the package.json mentioned in the guide:

            ...

            ANSWER

            Answered 2021-Mar-22 at 23:39

            I was able to get it working by loading my application in the following way.

            My webpack entry config looks like this:

            Source https://stackoverflow.com/questions/66734558

            QUESTION

            How do I make an HTTP request within a wasm_bindgen function in Rust?
            Asked 2021-Feb-27 at 19:37

            I am developing a NODE JS package using Rust and wasm-pack to compile, and I need to make HTTP requests in my code. I tried to use reqwest library, so everything works fine in the test but I get an error in packing.

            ...

            ANSWER

            Answered 2021-Feb-27 at 19:37

            It won't work as easily as you'd expect: WASM bytecode is executed in a protected environment without any access to OS features like disk, network, conventional random generators and any other type of I/O. Consequently, the moment you compile any Rust code using such features into Wasm, it won't work.

            Unfortunately your code (e.g. file access) usually even compiles silently and then fails in mysterious ways during runtime. This is not what you got used to using Rust and a major drawback of the current Wasm Rust stack.

            To access OS features, you'll need WASI (Wasm System Interface) as an extension. To enable Wasi in NodeJs, you can use something like WasmerJs, see e.g. this article providing a short summary to do so.

            Source https://stackoverflow.com/questions/66397775

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install wasm-pack

            Visit the quickstart guide in our documentation.

            Support

            Read our guide on getting up and running for developing wasm-pack, and check out our contribution policy.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            Install
          • npm

            npm i wasm-pack

          • CLONE
          • HTTPS

            https://github.com/rustwasm/wasm-pack.git

          • CLI

            gh repo clone rustwasm/wasm-pack

          • sshUrl

            git@github.com:rustwasm/wasm-pack.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link