peter-evans/rust-wasm-action

Rust-generated WebAssembly GitHub action template

A template to bootstrap the creation of a Rust-generated WebAssembly GitHub action

.

About

This project is experimental. While it is very much feasible to write a GitHub action in Rust-generated WebAssembly, as this project demonstrates, there are some challenges compared to Javascript/Typescript.

The following is a summary of pain points I discovered, and some caveats when using the template.

  • It relies on raw bindings to the official actions toolkit NPM packages. Bindings for this template are defined in actions-toolkit-bindings but they are incomplete. I've only defined bindings that are in use by the template. It would be great to have a well maintained set of bindings published as a crate.

  • WebAssembly runs in a safe, sandboxed execution environment. As a result there is no access to files on disks, environment variables, etc. This means bindings to Javascript functions are necessary for some functionality.

  • Panics cause the action to fail on exit but could be handled a little better. Perhaps we need a hook similar to the console_error_panic_hook that calls the binding for the setFailed function in @actions/core.

  • When dealing with string input you need to make decisions about whether to leave the string in Javascript encoded as UTF-16 (js_sys::JsString), or to copy the string into Rust encoded as UTF-8. The later is lossy and in some cases could cause the string to be different in Rust than Javascript. See the wasm-bindgen documentation here for further detail.

License

MIT

Information - Updated Mar 06, 2022

Stars: 6
Forks: 0
Issues: 0

Wasm template for Rust hosting without npm-deploy on github pages using Travis script

It automatically hosts your wasm projects on gh-pages using a travis script on the latest commit

Wasm template for Rust hosting without npm-deploy on github pages using Travis script

Roctogen: a rust client library for the GitHub v3 API

This client API is generated from the Isahc HTTP client

Roctogen: a rust client library for the GitHub v3 API

A rust github template for ease of use

Install the rust toolchain in order to have cargo installed by following

A rust github template for ease of use

Template for Rust lib/bin module with built-in GitHub Action to build and test

You will want to change the lib name and bin name in Cargo

Template for Rust lib/bin module with built-in GitHub Action to build and test

cargo_auto_github_lib

Library for cargo-auto automation tasks written in rust language with functions for github

cargo_auto_github_lib

A Rust library to connect to AxonServer

See the GitHub project Command / Query Responsibility Segregation (CQRS)

A Rust library to connect to AxonServer

Rust client implementation for Brasil API

Rust client implementation for BrasilAPI GitHub Project

Rust client implementation for Brasil API

a Rust interface for GitHub

GitHub instances define methods for accessing api services that map closely to

a Rust interface for GitHub
Facebook Instagram Twitter GitHub Dribbble
Privacy